這篇文章跟大家介紹一下PHP操作使用者提交內容時需要注意的危險函數。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
對於我們的程式開發來說,使用者的輸入是解決安全性問題的第一大入口。為什麼這麼說呢?不管是SQL注入、XSS還是檔案上傳漏洞,全部都跟使用者提交的輸入參數有關。今天我們不講這些問題,我們主要探討下面對使用者的輸入,有一些危險的函數在未經驗證的情況下是不能直接使用這些函數來進行操作的,例如:
include($g);
假設這個$g 是使用者提交的內容,我們在未經驗證的情況下直接使用這個參數來包含文件,我們傳遞的參數為?g=/etc/passwd ,那麼伺服器上所有的使用者帳號資訊就很可能就直接洩漏了。
另外,一些執行 shell 指令的函數還是極度危險的。
echo system($g);
當我們傳遞的參數是 ?g=ls -la / 時,同樣的伺服器目錄也展示了出來,這也僅僅是顯示目錄結構,如果使用其它更恐怖的命令後果將不堪設想。
同理,我們經常會根據一些id或指定的文件名來操作文件,特別是在刪除文件的時候,如果未加判斷,那麼也可能直接去刪除某些非常重要的文件。
unlink('./' . $g);
我們繼續將 $g 建構成 ?g=../../../xxxx ,如果在權限允許的情況下,就可以刪除各種系統檔案。
對這些內容,其實在 PHP 的官方手冊中就已經給了一些很好的建議,我們不妨來直接看看 PHP 手冊中是如何說的。
許多 PHP 程式所存在的重大弱點並不是 PHP 語言本身的問題,而是程式設計者的安全意識不高而導致的。因此,必須時時注意每一段程式碼可能存在的問題,去發現非正確資料提交時可能造成的影響。
必須時常留意你的程式碼,以確保每一個從客戶端提交的變數都經過適當的檢查,然後問自己以下一些問題:
此腳本是否只能影響所預期的文件?
非正常的資料提交後能否產生作用?
此腳本能用於計劃外的用途嗎?
此腳本能否和其它腳本結合起來做壞事?
是否所有的事務都被充分記錄了?
也可以考慮關閉 register_globals,magic_quotes 或者其它使程式設計更方便但會使某個變數的合法性,來源和其值被搞亂的設定。在開發時,可以使用 error_reporting(E_ALL) 模式來幫助檢查變數使用前是否有被檢查或被初始化,這樣就可以防止某些非正常的資料的撓亂了。
其實,只要能遵守這些建議,大部分的安全問題都能解決。還是那句話,不能相信使用者的任何輸出,在測試的時候請做好各種驗證,包括但不限於邊界值、特殊符號、特殊指令、越界值、目錄權限等。在非必要的情況下不要使用使用者的輸入作為包含文件、執行腳本及文件操作的直接參數,如果一定要用的話千萬要進行各種形式的過濾驗證。
測試程式碼:
[https://github.com/zhangyue05...
推薦學習:php影片教學
#以上是三分鐘帶你了解PHP操作使用者提交內容時需要注意的危險函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具