程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 編寫安全PHP應用程序的七個習慣

編寫安全PHP應用程序的七個習慣

編輯:PHP綜合

在提及安全性問題時,需要注意,除了實際的平台和操作系統安全性問題之 外,您還需要確保編寫安全的應用程序。在編寫 PHP 應用程序時,請應用下面 的七個習慣以確保應用程序具有最好的安全性:

驗證輸入

保護 文件系統

保護數據庫

保護會話數據

保護跨站點腳本( Cross-site scripting,XSS)漏洞

檢驗表單 post

針對跨站點 請求偽造(Cross-Site Request Forgeries,CSRF)進行保護

驗證輸入

在提及安全性問題時,驗證數據是您可能采用的最重要的習慣。而在提 及輸入時,十分簡單:不要相信用戶。您的用戶可能十分優秀,並且大多數用戶 可能完全按照期望來使用應用程序。但是,只要提供了輸入的機會,也就極有可 能存在非常糟糕的輸入。作為一名應用程序開發人員,您必須阻止應用程序接受 錯誤的輸入。仔細考慮用戶輸入的位置及正確值將使您可以構建一個健壯、安全 的應用程序。

雖然後文將介紹文件系統與數據庫交互,但是下面列出了 適用於各種驗證的一般驗證提示:

使用白名單中的值

始終重新 驗證有限的選項

使用內置轉義函數

驗證正確的數據類型(如數 字)

白名單中的值(White-listed value)是正確的值,與無效的黑名 單值(Black-listed value)相對。兩者之間的區別是,通常在進行驗證時,可 能值的列表或范圍小於無效值的列表或范圍,其中許多值可能是未知值或意外值 。

在進行驗證時,記住設計並驗證應用程序允許使用的值通常比防止所 有未知值更容易。例如,要把字段值限定為所有數字,需要編寫一個確保輸入全 都是數字的例程。不要編寫用於搜索非數字值並在找到非數字值時標記為無效的 例程。

保護文件系統

2000 年 7 月,一個 Web 站點洩露了保存 在 Web 服務器的文件中的客戶數據。該 Web 站點的一個訪問者使用 URL 查看 了包含數據的文件。雖然文件被放錯了位置,但是這個例子強調了針對攻擊者保 護文件系統的重要性。

如果 PHP 應用程序對文件進行了任意處理並且含 有用戶可以輸入的變量數據,請仔細檢查用戶輸入以確保用戶無法對文件系統執 行任何不恰當的操作。清單 1 顯示了下載具有指定名的圖像的 PHP 站點示例。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved