21種PHP 危險函數全解析
在編譯 PHP 時,如無特殊需要,一定禁止編譯生成 CLI 命令行模式的 PHP 解析支持。可在編譯時使用 –disable-CLI。一旦編譯生成 CLI 模式的PHP,則可能會被入侵者利用該程序建立一個WEB Shell 後門進程或通過PHP 執行任意代碼。
nfo()
功能描述:輸出 PHP 環境信息以及相關的模塊、WEB 環境等信息。
危險等級:中
thru()
功能描述:允許執行一個外部程序並回顯輸出,類似於 exec()。
危險等級:高
()
功能描述:允許執行一個外部程序(如 UNIX Shell 或 CMD 命令等)。
危險等級:高
em()
功能描述:允許執行一個外部程序並回顯輸出,類似於 passthru()。
危險等級:高
ot()
功能描述:可改變當前 PHP 進程的工作根目錄,僅當系統支持 CLI 模式PHP 時才能工作,且該函數不適用於 Windows 系統。
危險等級:高
dir()
功能描述:列出指定路徑中的.文件和目錄。
危險等級:中
p()
功能描述:改變文件或目錄所屬的用户組。
危險等級:高
n()
功能描述:改變文件或目錄的所有者。
危險等級:高
l_exec()
功能描述:通過 Shell 執行命令,並將執行結果作為字符串返回。
危險等級:高
_open()
功能描述:執行一個命令並打開文件指針用於讀取以及寫入。
危險等級:高
_get_status()
功能描述:獲取使用 proc_open() 所打開進程的信息。
危險等級:高
r_log()
功能描述:將錯誤信息發送到指定位置(文件)。
安全備註:在某些版本的 PHP 中,可使用 error_log() 繞過 PHP safe mode,
執行任意命令。
危險等級:低
_alter()
功能描述:是 ini_set() 函數的一個別名函數,功能與 ini_set() 相同。具體參見 ini_set()。
危險等級:高
_set()
功能描述:可用於修改、設置 PHP 環境配置參數。
危險等級:高
_restore()
功能描述:可用於恢復 PHP 環境配置參數到其初始值。
危險等級:高
()
功能描述:在 PHP 進行運行過程當中(而非啟動時)加載一個 PHP 外部模塊。
危險等級:高
ckopen()
功能描述:建立一個 Internet 或 UNIX 域的 socket 持久連接。
危險等級:高
og()
功能描述:可調用 UNIX 系統的系統層 syslog() 函數。
危險等級:中
link()
功能描述:返回符號連接指向的目標文件內容。
危險等級:中
ink()
功能描述:在 UNIX 系統中建立一個符號鏈接。
危險等級:高
n()
功能描述:可通過 popen() 的參數傳遞一條命令,並對 popen() 所打開的文件進行執行。
危險等級:高
am_socket_server()
功能描述:建立一個 Internet 或 UNIX 服務器連接。
危險等級:中
nv()
功能描述:用於在 PHP 運行時改變系統字符集環境。在低於 5.2.6 版本的 PHP 中,可利用該函數修改系統字符集環境後,利用 sendmail 指令發送特殊參數執行系統 SHELL 命令。
危險等級:高
-
asp.net 操作INI文件讀寫類實例代碼
操作INI文件讀寫類實例代碼複製代碼代碼如下:usingSystem;usingropServices;using;using;namespaceCommon{//////INI文件讀寫類。///publicclassINIFile{publicstringpath;publicINIFile(stringINIPath){path=INIPath;}[DllImport("kernel32")]privatestaticex...
-
學習JavaScript的7個理由
為什麼要學習JavaScript?學習JavaScript對我們的工作有什麼幫助麼?下面YJBYS小編為大家講解!需求我之所以這樣説的主要原因是,隨着JavaScript的日漸成熟,以及方案變得越來越可行,我們對JavaScript程序員的需求正在持續增長。JavaScript在需求比例上已經超過了C#,僅...
-
JavaScript 函數表達式
JavaScript中創建函數主要有兩種方法:函數聲明和函數表達式。這兩種方式都有不同的適用場景。這篇筆記主要關注的是函數表達式的幾大特點以及它的使用場景,下面一一描述。主要特點可選的函數名稱函數名稱是函數聲明的必需組成部分,這個函數名稱相當於一個變量,新定...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...