0
<?php if(basename($_SERVER["SCRIPT_FILENAME"]) == basename(__FILE__)) { header ("HTTP/1.1 404 Not Found"); exit; } ?>
我把這個放入我所有的PHP文件,這是一種安全的方法,還是可以繞過?這是一種安全的方法來停止直接文件訪問?
<?php if(basename($_SERVER["SCRIPT_FILENAME"]) == basename(__FILE__)) { header ("HTTP/1.1 404 Not Found"); exit; } ?>
我把這個放入我所有的PHP文件,這是一種安全的方法,還是可以繞過?這是一種安全的方法來停止直接文件訪問?
你應該把你的核心文件放在你網站的根目錄之外。
例如,如果您的公共文件位於:/var/www/site0/public_html
,則將所有核心文件放在/var/www/site0/
目錄下。
另一種方法是使用常量。很可能你有一個引導腳本,其中包括你所有的文件(這就是爲什麼你需要直接訪問保護)。
在你的引導腳本的頂部定義一個常量:define('BOOTSTRAPPED', 1)
,
然後把這個線在您要防止直接訪問你的腳本的頂部:if (!defined('BOOTSTRAPPED')) exit;
你不能只是把它們之外你的Web服務器的根目錄? – Federkun