在PHP中經(jīng)常看到如下代碼
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
實現(xiàn)的原因以及原理如下:
ecshop里的有些.php頁是不需要用戶通過url直接訪問的,用來被其它頁調(diào)用的,例如/includes/init.php,就不需要直接訪問,通過url訪問你的網(wǎng)址/includes/init.php是無意義的,所以我們在可以直接方問的php里加上define('IN_ECS', true);
例如在index.php中有如下代碼,一開頭就設(shè)置IN_ECS的值為true然后才去加載init.php這樣init.php文件中IN_ECS的值就為true,這時候引入cls_mysql.php也可以引入,因為此時IN_ECS的值也是為true
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
在頁面直接訪問
出現(xiàn)這樣的結(jié)果
在不能直接訪問的php里加上
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
這樣當直接訪問init.php里就會顯不
Hacking attempt
從頁起到禁止訪問的目的,而其它頁面在調(diào)用init.php時是正常的
這樣做更安全
這也是一種設(shè)計思想,防止其它文件不正常調(diào)用或者防止前臺直接訪問文件。
|
新聞熱點
疑難解答
圖片精選