Lamvt – Vũ Thành Lâm – bắt đầu Code 2005 Freelancer từ 2006 với hàng ngàn dự án lớn nhỏ cho nước ngoài và hàng trăm dự án web cho Việt Nam.
SEO thành công rất nhiều dự án lớn, độ khó cao.
MOD (Moderator) và Admin (Administraror) của nhiều diễn đàn về SEO và CODE web MMO tại Việt Nam
Dạy Lập trình Thiết kế Web và SEO Miễn phí 17++ Năm (Từ 2006 đến Nay)
Quản lý việc tải lên thế nào khi người dùng không đăng nhập?
Các vấn đề liên quan tới thông tin, nội dung của website bạn hoàn toàn có thể quản lý ngay trong phần quản trị của trang web. Tuy nhiên, những nội dung mà những người dùng/ khách vãng lai đăng lên trang web của bạn làm sao để có thể quản lý được.
Thông thường, người dùng sẽ phải đăng nhập để tải lên các thông tin cần thiết ở một website nào đó. Bên cạnh đó, một số website không bắt buộc người dùng phải đăng nhập mới có quyền đăng tải. Bởi vậy, việc quản lý thông tin tải lên khi người dùng không đăng nhập là điều biên tập viên/ quản trị website phải thực sự lưu ý.
Những dữ liệu tải lên khi người dùng không đăng nhập sẽ có thể gây ảnh hưởng tới tài nguyên website của bạn. Cũng có thể, một đối tượng xấu mặt muốn thông qua việc đăng tải để truy cập vào hệ thống dữ liệu website. Nếu chỉ kiểm tra cookie có tồn tại hay không chưa hẳn là một điều có thể bảo vệ được website của bạn.
Một số ý kiến cho rằng dùng .htacess
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^.*uploads/private/.* RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC] RewriteRule . /index.php [R,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Để tăng khả năng bảo vệ, bạn có thể cài đặt chế độ tường lửa “proxy” cho tất cả yêu cầu vào thư mục được tải lên thông qua một tập lệnh php:
RewriteCond %{REQUEST_FILENAME} -s RewriteRule ^wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]
Sau khi bạn thiết lập chế độ tường lửa, tất cả các yêu cầu tải lên tệp bao gồm cả hình ảnh lẫn nội dung sẽ đi đến dl-file.php đó. Thông qua dữ liệu này, bạn có thể xác minh nếu người dùng đăng nhập hay không.
Các bạn có thể tham khảo ở đây ms-files.php
<pre><?php /* * dl-file.php * * Protect uploaded files with login. * * @link http://wordpress.stackexchange.com/questions/37144/protect-wordpress-uploads-if-user-is-not-logged-in * * @author hakre <http://hakre.wordpress.com/> * @license GPL-3.0+ * @registry SPDX */ require_once('wp-load.php'); is_user_logged_in() || auth_redirect(); list($basedir) = array_values(array_intersect_key(wp_upload_dir(), array('basedir' => 1)))+array(NULL); $file = rtrim($basedir,'/').'/'.str_replace('..', '', isset($_GET[ 'file' ])?$_GET[ 'file' ]:''); if (!$basedir || !is_file($file)) { status_header(404); die('404 — File not found.'); } $mime = wp_check_filetype($file); if( false === $mime[ 'type' ] && function_exists( 'mime_content_type' ) ) $mime[ 'type' ] = mime_content_type( $file ); if( $mime[ 'type' ] ) $mimetype = $mime[ 'type' ]; else $mimetype = 'image/' . substr( $file, strrpos( $file, '.' ) + 1 ); header( 'Content-Type: ' . $mimetype ); // always send this if ( false === strpos( $_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS' ) ) header( 'Content-Length: ' . filesize( $file ) ); $last_modified = gmdate( 'D, d M Y H:i:s', filemtime( $file ) ); $etag = '"' . md5( $last_modified ) . '"'; header( "Last-Modified: $last_modified GMT" ); header( 'ETag: ' . $etag ); header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + 100000000 ) . ' GMT' ); // Support for Conditional GET $client_etag = isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) ? stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) : false; if( ! isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) ) $_SERVER['HTTP_IF_MODIFIED_SINCE'] = false; $client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ); // If string is empty, return 0. If not, attempt to parse into a timestamp $client_modified_timestamp = $client_last_modified ? strtotime( $client_last_modified ) : 0; // Make a timestamp for our most recent modification... $modified_timestamp = strtotime($last_modified); if ( ( $client_last_modified && $client_etag ) ? ( ( $client_modified_timestamp >= $modified_timestamp) && ( $client_etag == $etag ) ) : ( ( $client_modified_timestamp >= $modified_timestamp) || ( $client_etag == $etag ) ) ) { status_header( 304 ); exit; } // If we made it this far, just serve the file readfile( $file );</pre>
Nếu người dùng không đăng nhập, mẫu đăng nhập trang web của bạn sẽ được hiển thị. Sau khi người dùng đăng nhập, họ sẽ được chuyển hướng trở lại tập tin và có thể tải xuống ngay bây giờ.
Bạn sẽ tìm được thông tin hữu ích liên quan tới người dùng tải tệp lên trong \wp-includes\ms-files.php cài đặt wordpress của bạn, nhưng một trong số đó là dành cho multisite và w / o đăng nhập kiểm tra và chuyển hướng.
Tùy thuộc vào lượng truy cập bạn có, có thể tùy chỉnh để tích hợp tốt hơn với máy chủ của bạn, ví dụ như X-Accel-Redirect hoặc X-Sendfile tiêu đề.
Việc bảo vệ nguồn tài nguyên website là rất quan trọng, bởi vậy bạn cần thực hiện xây dựng công cụ bảo vệ một cách tốt nhất mà vẫn tối ưu được website, mang đến sự tiện dụng cho người dùng.
Dù bạn dùng phiên bản WordPress với lưu lượng truy cập cao hay một blog nhỏ trên máy chủ chia...
VR PLUS (https://vrplus.vn/ ) Là một trong những dự án do Lamvt thực hiện trong thời gian gần đây. Như...
Trong một năm qua, chúng tôi đã xuất bản khoảng 79 bài viết SEO trên blog Ahrefs. Các bài viết...
Khám phá kĩ thuật viết nội dung SEO Nếu không có SEO, nội dung của bạn có thể bị chìm...
Các website về lĩnh vực làm đẹp cần phải có một thiết kế (design) hấp dẫn và bắt mắt. Điều...
Như đã nói, phần mềm chỉnh sửa video đang ngày càng chứng tỏ được tầm quan trọng của mình, nhất...
Nhiều bạn thắc mắc là sau khi cài đặt Plugin cho Google AMP thì làm thế nào để kiểm tra,...
Các trang web giáo dục và các trang web của chính phủ có một lợi thế hơn trong bảng xếp...
Nội dung là một trong 3 tiêu chí quan trọng để google đánh giá thứ hạng tìm kiếm cho website...
Thẻ <span> </span> Thẻ <span> là thẻ khá đặc biệt trong HTML, theo mặc định thì thẻ <span> được thêm...