本文介紹關於php應用程式的漏洞以及攻擊者如何利用php超全域性變數來執行web攻擊的訊息。並解釋一下什麼是php超全域性變數及其帶來的風險。
nick lewis(cissp,gcwn))是一名資訊保安分析師。他主要負責風險管理專案,並支援該項目的技術pci法規遵從計畫。2023年,nick獲得密西根州立大學的電信理學碩士學位;2023年,又獲得norwich大學的資訊保安保障理學碩士學位。在他09年加入目前的組織之前,nick曾在波士頓兒童醫院、哈佛醫學院初級兒科教學醫院,以及internet2和密西根州立大學工作。
問:我聽到了很多關於php應用程式的漏洞以及攻擊者如何利用php超全域性變數來執行web攻擊的訊息。您能否解釋一下什麼是php超全域性變數及其帶來的風險?
答:首先,我們來看一點背景知識:超文字預處理器(php)已經存在超過10年,它是迄今為止最重要的web應用程式程式語言。它的最初設計考慮了功能與易用性。然而,雖然php已經使用了這麼多年,但它有著「劣跡斑斑」的安全漏洞記錄。研究人員甚至建立了hardened php專案來幫助企業保護應用程式和網頁。
雖然我們已經發現並修復了很多php漏洞,但很多這些漏洞給許多常用web應用程式帶來威脅,並需要web應用程式開發人員能夠使用最新版本的php。其他程式語言(例如微軟的active server pages或者asp)沒有這些型別的漏洞,因而不需要開發人員或系統管理人員總是使用最新版本的語言來保持應用程式的安全性,減少了公升級和培訓的需求,從而降低了開發成本。無論使用什麼程式語言,我們仍然需要使用安全開發實踐。
在2023年8月,php超全域性變數被引入來禁用php register global功能--因為它造成了php和web應用程式的重大安全問題。php超全域性變數是php指令碼中可用的內建變數,它可以儲存資料,這些資料可以在整個指令碼中使用。因為不安全的設計,這個棄用的功能廣泛地被攻擊者濫用。
應用程式安全**商imperva在其報告中描述了超全域性變數帶來的風險。其中乙個風險是,超全域性變數可能被輸入惡意資料,隨後這些資料可能被攻擊者以不安全的方式被利用。
兩個關鍵資訊是,正如imperva所指出,對於任何php應用程式,沒有什麼理由來提供超全域性引數,要求應用程式提供這些引數的請求應該被阻止。為此,檢查以確保你的web應用程式防火牆部署了規則來自動阻止這些請求,當這種事情發生時,應該發出警報,因為這很可能是有針對性攻擊的標誌。
PHP 超全域性變數
globals 包含乙個引用指向每個當前指令碼的全域性範圍內有效的變數。該陣列的鍵名為全域性變數的名稱。從 php 3 開始存在 globals 陣列。server 變數由 web 伺服器設定或者直接與當前指令碼的執行環境相關聯。類似於舊陣列 http server vars 陣列 依然有效,但反對...
PHP超全域性變數
php 4.2.0以及後續版本中,php指令register globals的預設off.this是乙個重大的改變php.let register globals的關閉會影響到預定義變數的例子,在全球範圍內的validity.for設定,以獲得document root的值,將必須使用 server...
php超全域性變數
globals get post get post form表單中通過get或者post傳遞進來的引數都會儲存在這兩個陣列中,我們可以通過鍵來獲取使用者提交的資訊。然後做進一步處理。注 form表單裡面使用者提交的資訊一定要記得給name值。input type text password radi...