怎樣書寫PHP代碼更安全_PHP教程
推薦:基于DB2及PHP的應用系統跨平臺遷移實例講解本文主要介紹如何完成基于 DB2 的 PHP 應用系統從 AIX 平臺到 Linux 平臺的移植過程。文中包含了底層的 DB2 數據庫移植、上層的 PHP 應用系統移植的詳細步驟以及移植過程中可能遇到的問題和解決方法。 任務概述 系統遷移的工作主要分為以下幾個方面: 1.DB2
怎樣書寫PHP代碼更安全?PHP是一個很容易學習的語言, 許多人在沒有任何編程背景下學習它作為一種去增加一些互動元素到他們的網站的方法. 不幸的是,這往往意味著PHP程序員,尤其是那些較新的Web開發程序員, 并沒有覺察他們網站中潛在安全風險. 這里是一些比較常見的安全問題,以及如何去避免它們。
永遠,永遠信任你的用戶
不能說足夠的次數,你應該永遠,永遠, 信任你的用戶向你發送你期望的數據. 我聽到很多人回應,大概是"哦,沒有惡意的人將對我的網站感興趣"。這就錯了, 這里總是有懷有惡意的用戶可以利用一個安全漏洞,問題可以很容易被發現,因為一個用戶無意中做錯了。
因此, 所有網頁的發展的戒律,我不能再壓縮了的話就是:永遠,永遠,相信你的用戶。假定你的網站從使用者收集的每片數據含有惡意代碼,始終, 你認為已經檢查客戶端驗證的這些數據,例如在JavaScript ,如果你能夠達到這個目標,你應該有了一個良好的開端。如果PHP的安全性很重要,這一點就要重要地學習,個人來說,"PHP安全"是一個重大的問題。
全局變量
在許多語言,你必須明確地設定一個變量以使用它。 在PHP中,有一個選項" , register_globals" , 你可以在php.ini中設置,讓你可以使用全局變量,而不需要事先聲明。
考慮下面的代碼:
以下為引用的內容: if ($password == "my_password") { $authorized = 1; } if ($authorized == 1) { echo "Lots of important stuff."; } |
許多人看上去覺得沒什么問題,而事實上,這方面的代碼在整個網站上應用. 但是,如果一個服務器開啟"register_globals"。然后,只需添加"?authorized=1"的URL將讓任何人都看到. 這是一個最普遍的PHP的安全問題。
所幸的是,這有兩個簡單的解決辦法. 第一,也許最好的,就是把"register_globals"關閉. 二是你必須明確只有你使用變量. 在上面的例子中,這將意味著加入"?authorized=0"; 在腳本的開始:
$authorized = 0;if ($password == "my_password") {$authorized = 1;}if ($authorized == 1) {echo "Lots of important stuff.";}
錯誤信息
錯誤信息是一個非常有用的工具,無論是程序員和黑客. 開發者需要它們去改正錯誤. 黑客可以利用它們來找出一個網站的各種信息, 從目錄結構的服務器,數據庫登錄信息. 如果可能的話,最好是關閉所有的錯誤報告. PHP可以完成這項工作. htaccess或php.ini,設置"error_reporting" 的值改為"0" . 如果你有一個開發環境,您可以設定不同的錯誤報告級別。
分享:用PHP編程語言開發動態WAP網站WAP(無線通訊協議)是在數字移動電話、個人手持設備(PDA等)及計算機之間進行通訊的開放性全球標準協議。隨著無線通訊的不斷發展,靜態的WAP頁面在很多方面已經不能滿足用戶個性化的要求,因此開發者可以在WAP服務器端使用諸如PHP等語言產生動態的WML頁面,來
- 相關鏈接:
- 教程說明:
PHP教程-怎樣書寫PHP代碼更安全。