Tại thời điểm này tôi làm điều đó như thế này:Chặn truy cập kịch bản trực tiếp vào một tập tin
Trong một tập tin, cho phép gọi nó là file_one.php
, tôi có
define('ROOT', realpath(dirname(__FILE__)));
require_once(ROOTPATH . '/file_two.php');
Và trong file_two.php
Sau đó tôi có điều này tại top:
if (! defined('ROOT'))
exit;
Vì vậy, các nội dung của file_two.php
chỉ có thể được truy cập nếu ROOT
được xác định, trong đó xảy ra trong file_one.php
. Nếu bạn cố gắng truy cập trực tiếp file_two.php
nó sẽ không hoạt động, phải không? Có bất kỳ sai sót nào trong phương pháp này không?
Một ý tưởng thậm chí còn tốt hơn là đặt nó bên ngoài webroot nếu có thể –
Đó là cách CodeIgniter dường như làm điều đó, vì vậy nên an toàn chủ yếu. Mặc dù tôi đồng ý với bài đăng ở trên rằng nếu đây là vấn đề, chỉ cần di chuyển nó ra khỏi docroot –