由于我們有需要用到某些php文件,而又不希望別人直接訪問這個文件,我們可以在其他包含文件比如global.php中定義一個參數,在被訪問頁面data.php前面判斷是否定義了該參數,沒有定義則禁止訪問。
在global.php中定義
| 以下為引用的內容: <?php <? |
這樣的代碼可以解決很多的安全問題,比如變量未定義[應該說在本文件內未定義]。
但是這樣的在本地包含漏洞前就沒什么意義了。比如進來看一代碼
common.php文件里:
| 以下為引用的內容: <?php |
如果沒有!defined('X') 的限制,那么這里$root_path未定義導致了一個遠程包含。
而在改腳本又存在一個update-->include的2次攻擊導致的本地包含,那么我們可以通過這個本地包含漏洞包含common.php導致突破!defined('X'),轉化為遠程包含。
新聞熱點
疑難解答