動態網頁中直接不讓訪問PHP程式檔案

2021-04-17 08:37:29 字數 659 閱讀 5569

由於我們有需要用到某些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...