首頁 後端開發 php教程 關於PHP的漏洞以及如何防止PHP漏洞?

關於PHP的漏洞以及如何防止PHP漏洞?

Jul 29, 2016 am 08:56 AM
cookie filter php sql xss

漏洞無非這麼幾類,XSS、sql注入、指令執行、上傳漏洞、本機包含、遠端包含、權限繞過、資訊外洩、cookie偽造、CSRF(跨站請求)等。這些漏洞不僅僅是針對PHP語言的,本文只是簡單介紹PHP如何有效防止這些漏洞。

1.xss + sql注入(關於xss攻擊詳細介紹)

其中佔大頭的自然是XSS與SQL注入,對於框架類型或者有公共文件的,建議在公共文件中統一做一次XSS和SQL注入的過濾。以PHP寫個濾波函數,可由下圖所示:

$_REQUEST = filter_xss($_REQUEST);

$_GET = filter_xss($_GET);

$_POST = filter_xss($_GET);

$_POST = filter_ssx($_GET); filter_xss($_COOKIE);

$_POST = filter_sql($_POST);

$_GET = filter_sql($_GET);

$_COOKIE = filter_sql($_GET);

$_COOKIE = filter_sql($C_m);

最簡單的filter_xss函數是htmlspecialchars()

最簡單的filter_sql函數是mysql_real_escape_string()

當然,都知道這種過濾filter_sql(詳細防止字符注入對於數字型是沒有辦法的,但也說明做了這層過濾後,只要在後面注意數字型的SQL語句就可以了,遇到了加intval過濾就可以了,這就變得容易多了。

2. 指令執行

對於指令執行,可以從關鍵字入手,總共可分為3類

(1) php程式碼執行:eval等

(2)shell指令執行:exec、passthru、system、eval等

(2)shell指令執行:exec、passthru、system、 shell_exec等

(3) 檔案處理:fwrite、fopen、mkdir等

對於這幾類需要注意其參數是否使用者可控制。

3.上傳漏洞

對於上傳漏洞,也是重點關注的地方,要仔細分析它的處理流程,針對上傳的繞過方式是很多的,最保險的方式:在保存文件是採用文件名隨機命名和後綴白名單方式。其次要注意的一點是上傳檔案的地方可能不只一處,不要有遺漏,可能會碰到這樣的情況,突然在某個目錄裡麵包含了一個第三方的編輯器在裡面。

檔案包含漏洞涉及的函數如include() 、include_once()、require()、require_once()、file_get_contents()等

最常見的還是出在下載檔案功能函數,例如download.php?file=. ./../../etc/passwd 這種類型中。

4. 權限繞過

權限繞過可分為兩類吧

(1)後台檔案的未授權存取。後台的文件沒有包含對session的驗證,就容易出現這樣的問題

(2)未作用戶隔離,例如mail.php?id=23顯示了你的信件,那麼換個ID, mail.php?id= 24就查看到了別人的信件,編寫代碼是方便,把信件都存在一個數據表裡,id統一編號,前端展現時只需按id取出即可,但未作用戶隔離,判定歸屬,容易造成越權訪問。

這樣的例子是很常見的,給某銀行做評估是就常發現這種漏洞。

5. 資訊外洩

資訊外洩算是比較低危險的漏洞了,例如列目錄這種就屬於部署問題,而與程式碼審計無關了,而像暴路徑、暴源碼這種是需要防止的。曾經遇到這樣的程式碼

表面上似乎沒問題,可是當請求變成xx.php?a[]= 1時,即參數變為數組的時候,就會發生錯誤以致路徑洩露,而用isset判斷則不會,當然一個個防太麻煩,建議在配置文件中關閉錯誤提示,或者在公共文件中加入如下程式碼以關閉錯誤顯示功能:

之前PHP點點通(phpddt.com)就有一篇文章:關於PHP防止漏洞策略 ,介紹了register_globals 的危害以及魔術引用Magic Quotes使用說明。

以上就介紹了關於PHP的漏洞以及如何防止PHP漏洞? ,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

🎜 🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles