PHP的漏洞-如何防止PHP漏洞
漏洞無非這麼幾類,XSS、sql注入、命令執行、上傳漏洞、本地包含、遠端包含、許可權繞過、資訊洩露、cookie偽造、CSRF(跨站請求)等。下面是小編為大家帶來的關於PHP的漏洞的知識,歡迎閱讀。
+ sql注入
其中佔大頭的自然是XSS與SQL注入,對於框架型別或者有公共檔案的,建議在公共檔案中統一做一次XSS和SQL注入的`過濾。用PHP寫個過濾函式,可由如下所示:
$_REQUEST = filter_xss($_REQUEST);
$_GET = filter_xss($_GET);
$_POST = filter_xss($_POST);
$_COOKIE = filter_xss($_COOKIE);
$_POST = filter_sql($_POST);
$_GET = filter_sql($_GET);
$_COOKIE = filter_sql($_COOKIE);
$_REQUEST = filter_sql($_REQUEST);
最簡單的filter_xss函式是htmlspecialchars()
最簡單的filter_sql函式是mysql_real_escape_string()
當然,誰都知道這種過濾filter_sql只能過濾字元型和搜尋型的注入,對於數字型是沒有辦法的,但也說明做了這層過濾後,只需在後面注意數字型的SQL語句就可以了,遇到了加intval過濾就可以了,這就變得容易多了。
2. 命令執行
對於命令執行,可以從關鍵字入手,總共可分為3類
(1) php程式碼執行 :eval等
(2)shell命令執行:exec、passthru、system、shell_exec等
(3) 檔案處理:fwrite、fopen、mkdir等
對於這幾類需要注意其引數是否使用者可控。
3.上傳漏洞
對於上傳漏洞,也是重點關注的地方,要仔細分析它的處理流程,針對上傳的繞過方式是很多的,最保險的方式:在儲存檔案是採用檔名隨機命名和字尾白名單方式。其次要注意的一點是上傳檔案的地方可能不止一處,不要有遺漏,可能會碰到這樣的情況,突然在某個目錄裡面包含了一個第三方的編輯器在裡面。
檔案包含漏洞涉及的函式如include() 、include_once()、require()、require_once()、file_get_contents()等
最常見的還是出在下載檔案功能函式,例如 這種型別中。
4. 許可權繞過
許可權繞過可分為兩類吧
(1)後臺檔案的未授權訪問。後臺的檔案沒有包含對session的驗證,就容易出現這樣的問題
(2)未作使用者隔離,例如顯示了你的信件,那麼換個ID, 就檢視到了別人的信件,編寫程式碼是方便,把信件都存在一個數據表裡,id統一編號,前端展現時只需按id取出即可,但未作使用者隔離,判定歸屬,容易造成越權訪問。
這樣的例子是很常見的,給某銀行做評估是就經常發現這種漏洞。
5. 資訊洩露
資訊洩露算是比較低危的漏洞了,比如列目錄這種就屬於部署問題,而與程式碼審計無關了,而像暴路徑、暴原始碼這種是需要防止的。曾經遇到這樣的程式碼
-
MySQL 入門基礎知識
MySQL最流行的關係型資料庫管理系統,在WEB應用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關係資料庫管理系統)應用軟體之一。以下是小編為大家搜尋整理的MySQL入門基礎知識,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!...
-
PHP開發環境安裝的方法
PHP是一種HTML內嵌式的語言,是一種在伺服器端執行的嵌入HTML文件的指令碼語言,語言的風格有類似於C語言,被廣泛地運用。以下是小編為大家搜尋整理的PHP開發環境安裝的方法,歡迎閱讀!更多精彩內容請及時關注我們應屆畢業生考試網!一、PHP簡介PHP於1994年由RasmusLerdo...
-
PHP考試筆試題
用寶珠打扮自己,不如用知識充實自己。以下是小編為大家搜尋整理的PHP考試筆試題,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!1、{PHP題目}識別符號是變數的名稱。PHP中的識別符號用$+變數名來表示。識別符號在PHP中遵循下列選項中的那些規則?()...
-
php變數作用域的深入解析
文章是對php變數作用域進行了詳細的分析介紹,需要的朋友參考下,跟隨小編去瞧一瞧!PHP中的每個變數都有一個針對它的作用域,它是指可以在其中訪問變數(從而訪問它的值)的一個領域。對於初學者來說,變數的作用域是它們所駐留的頁面。因此,如果你定義了$var,頁面餘下部分就...