Làm cách nào để ngăn tệp truy cập URL trực tiếp?
Trong hướng dẫn htaccess này, chúng tôi sẽ chỉ cho bạn cách ngăn chặn truy cập trực tiếp tệp/URL của trang web của bạn. Đôi khi chủ sở hữu trang web không muốn người dùng đó có thể truy cập trực tiếp vào tệp zip, CSS, v.v. Show
Để ngăn truy cập trực tiếp, bạn cần thêm đoạn mã bên dưới vào tệp htaccess
Bạn có thể thêm nhiều phần mở rộng tệp bằng cách ORing ký hiệu
Người giới thiệu
Trước Tiếp theo bài viết tương tự
Giới thiệu về tác giảAtul RaiTôi thích chia sẻ các thí nghiệm và ý tưởng của mình với mọi người bằng cách viết các bài báo về các xu hướng công nghệ mới nhất. Đọc tất cả các bài viết được xuất bản bởi Atul RaiVui lòng kích hoạt JavaScript để xem các bình luận được cung cấp bởi Disqus Giả sử chúng ta có một tệp PHP có tên là “form-contact. php” trong trang web của chúng tôi và nó được thực thi khi một biểu mẫu được gửi. Thư mục của tệp php nằm trong thư mục có tên “src/php/”. Một ngày nọ, ai đó biết về vị trí của các tệp php từ EMAIL HTTP HEADERS, đã cố tình gửi khi người dùng điền vào biểu mẫu liên hệ rồi gửi đi Anh ấy biết về đường dẫn tệp đó và sau đó anh ấy đã cố gắng truy cập tệp đó trực tiếp qua trình duyệt web. Ví dụ; https://mywebsite.com/src/php Kết quả từ yêu cầu trên, có khả năng sẽ gây ra một thư rác email lớn từ tệp biểu mẫu liên hệ php. Mặc dù chúng tôi thực hiện một số xác thực Javascript để ngăn biểu mẫu liên hệ bị trống. Hộp thư đến của chúng tôi có thể chứa đầy email bao gồm nội dung trống (ngoại trừ email được mã hóa cứng) Vậy làm cách nào để ngăn truy cập url trực tiếp vào “php form-contact”? . //trang web của tôi. com/src/php, thì tệp php sẽ không được thực thi và thay vào đó, nó sẽ trả về thông báo lỗi Có hai cách có thể để chạy 1. Đặt mã này ở đầu biểu mẫu liên hệ. phpif ( $_SERVER['REQUEST_METHOD']=='GET' && realpath(__FILE__) == realpath( $_SERVER['SCRIPT_FILENAME'] ) ) {header( 'HTTP/1.0 403 Forbidden', TRUE, 403 );die( header( 'location: /error.php' ) );}?> tiêu đề ('HTTP/1. 0 403 Forbidden', TRUE, 403 );” . Một số thích 404 ngay cả khi tệp tồn tại. Tôi thích chọn 403 Forbidden hơn cái chết (tiêu đề ('vị trí. /lỗi. php’ ) );” . Trong trường hợp này, tôi đã tạo ra một lỗi. trang php bên dưới $status = $_SERVER['REDIRECT_STATUS'];$codes = array(403 => array('403 Forbidden', 'The server has refused to fulfill your request.'),404 => array('404 Not Found', 'The document/file requested was not found on this server.'),405 => array('405 Method Not Allowed', 'The method specified in the Request-Line is not allowed for the specified resource.'),408 => array('408 Request Timeout', 'Your browser failed to send a request in the time allowed by the server.'),500 => array('500 Internal Server Error', 'The request was unsuccessful due to an unexpected condition encountered by the server.'),502 => array('502 Bad Gateway', 'The server received an invalid response from the upstream server while trying to fulfill the request.'),504 => array('504 Gateway Timeout', 'The upstream server failed to send a request in the time allowed by the server.'),);$title = $codes[$status][0];$message = $codes[$status][1];if ($title == false || strlen($status) != 3) {$message = 'Please supply a valid status code.';}echo ' hoặc nếu bạn muốn tạo một cách tiếp cận đơn giản hơn, bạn có thể làm điều này if ( $_SERVER['REQUEST_METHOD']=='GET' && realpath(__FILE__) == realpath( $_SERVER['SCRIPT_FILENAME'] ) ) {header( 'HTTP/1.0 403 Forbidden', TRUE, 403 );die (" Vì vậy, khi người dùng truy cập vào “form-contact. php” bằng cách gõ trực tiếp URL, nó sẽ hiện ra trang báo lỗi như thế này 2. sửa đổi tập tin. htaccessMột cách khác bạn có thể thử là sửa đổi. htaccess như thế này; RewriteEngine on Điều này sẽ trả về 404 không tìm thấy nếu biểu mẫu liên hệ. php không được truy cập bằng phương thức đăng mẫu Tôi thấy rằng những cách trên hoạt động như tôi muốn. Chỉ cần thêm mã đó vào đầu mỗi tệp bạn muốn chặn truy cập URL trực tiếp và bạn đã sẵn sàng Tất nhiên là tôi có thể sai và nếu bạn có bất kỳ giải pháp nào hoặc có sai sót từ các cách tiếp cận trên, đừng ngần ngại chia sẻ giải pháp của bạn Làm cách nào để ngăn truy cập URL trực tiếp vào các tệp của tôi từ bên ngoài trang web của tôi?Bật “Hiển thị tệp ẩn” để xem. Bây giờ hãy xóa bộ nhớ cache của bạn và thử truy cập trực tiếp vào tệp . Bạn sẽ nhận được Lỗi Cấm, nhưng bạn sẽ có thể mở và tải xuống các tệp từ các trang trên trang web của mình.
Làm cách nào để ngăn truy cập URL trực tiếp trong Javascript?Một cách để đạt được điều này là sử dụng "tài liệu. thuộc tính người giới thiệu" .
Làm cách nào để ngăn người dùng truy cập trực tiếp vào trang HTML của tôi bằng cách viết URL?Trường hợp có vấn đề => www. ví dụ. com/trang2. html => trang2. . Đăng biểu mẫu của bạn lên tập lệnh php (chẳng hạn như đăng nhập. php) Tập lệnh kiểm tra chi tiết đăng nhập và đặt cookie trang 2. thay vào đó, html phải là php và kiểm tra cookie trước khi hiển thị HTML Làm cách nào để hạn chế truy cập URL trực tiếp trong PHP?or if you prefer to create a way more simpler approach, you can do this: Access Denied! |