由於我們有需要用到某些php檔案,而又不希望別人直接訪問這個檔案,我們可以在其他包含檔案比如global.php中定義乙個引數,在被訪問頁面data.php前面判斷是否定義了該引數,沒有定義則禁止訪問。
在global.php中定義
<?php
define('root','./');
?>
在data.php檔案中判斷:
<?
//data.php
if(!defined("root"))
?>
這樣的**可以解決很多的安全問題,比如變數未定義[應該說在本檔案內未定義]。
但是這樣的在本地包含漏洞前就沒什麼意義了。比如進來看一**
common.php檔案裡:
<?php
if(!defined('root'))
if(!isset($root_path))
require_once($root_path.'config.php');
?>
如果沒有!defined('x')的限制,那麼這裡$root_path未定義導致了乙個遠端包含。
而在改指令碼又存在乙個update-->include的2次攻擊導致的本地包含,那麼我們可以通過這個本地包含漏洞包含common.php導致突破!defined('x'),轉化為遠端包含。
PHP動態網頁指令碼
php php hypertext preprocessor 是一種在電腦上執行的指令碼語言,主要是用途在於處理動態網頁,也包含了命令列執行介面 command line inte ce 或者產生圖形使用者介面 gui 程式。php 最早由 rasmus lerdorf 在1995年發明,現在php...
動態網頁製作技術PHP的變數型別
php 的變數型別不多,有以下五種 string integer double array object string 即為字串變數,無論是單一字元或數千字的字串都是使用這個變數型別。值得注意的是要指定字串給字串變數,要在頭尾加上雙引號 例如 這是字串 在要讓字串換行時,可使用溢位字元,也就是反斜線...
動態網頁製作技術PHP處理時間的例項
轉換為unix時間戳 function gettime d else dateadd interval,number,date 返回已新增指定時間間隔的日期。inetrval為表示要新增的時間間隔字串表示式,例如分或天 number為表示要新增的時間間隔的個數的數值表示式 date表示日期 inte...