PHP安全技術之 實現php基本安全

2022-10-06 14:18:19 字數 1289 閱讀 7010

1.不要依賴註冊全域性變數功能(register_globals)

註冊全域性變數的出現曾經讓php變得非常易用,但也降低了安全性(方便之處經常會破壞安全性)。建議在程式設計時把register_globals指令關閉,在php6中這個功能也會被取消。

2.在使用變數之前對其進行初始化。

如果register_globals功能是啟動的,即使程式設計師不使用它,惡意使用者也可能利用為初始化變數的漏洞來侵入我們的系統。比如:

if(conditon)

如果變數$auth沒有在這段之前被初始化為false,那麼使用者就可以向指令碼傳遞$_get[『auth']、$_post[『auth']或$_cookie[『auth']輕易的實現驗證。

3.檢驗和淨化全部輸入資料。

4.在利用變數引用包含檔案時要小心。

如果指令碼中有這樣的**:

require($page);

那麼就應該確保$page不會來自外部資源(比如$_get),或者,如果它的確來自於外部資源,那麼就要確保它包含適當的值。

5.在使用任何伺服器上執行命令的函式都要多加小心。

這些函式包括eval()、exec()、syste程式設計客棧m()、passthru()、popen()和反撇號(``)。這些函式都能夠在伺服器上執行命令,永遠都不要隨意使用。如果在命令裡不得不包含便來那個,就應該對這個變數進行徹底的安全檢查。還應該使用escapeshellarg() escapeshellcom()進行額外的預處理。

6.更改預設的會話目錄,或者使用資料庫儲存會話資料。

7.不要tjimpwtit使用瀏覽程式設計客棧器提供的檔名在程式設計客棧伺服器上儲存上傳的檔案。

8.如果被提交的資料需要在web頁面中重新顯示,一定要注意其中的html,更重要的是j**ascript

可以利用函式

string htmlspecialchars ( string string [, int quote_style [, string charset]])

對提交的資料進行處理

9。不要在站點上暴露你的php錯誤資訊

php錯誤資訊能夠在你開發的過程中把錯誤資訊輸出方便你的檢查,但是如果暴露在web上面,很可以成為攻擊者的入口。

10.防止sql注入攻擊。

應該使用特定語言的資料庫轉義函式,比如mysqli_real_escape_data(),確保提交的內容不會破壞查詢操作。

11.永遠不要在伺服器上儲存phpinfo()指令碼。

本文標題: php安全技術之 實現php基本安全

本文位址: /wangluo/php/59074.html

php的安全(黑客技術)

1.字串操作 1 對於輸入的字串來說,某些字元肯定是有效的。但是對於我們黑客來說,就是要往裡面輸入一些具有特殊功能的字元。但是php為了防止使用者輸入的資料具有某個功能,提供了轉義字串函式。這些轉義字串函式將字串轉義就是在她們前面加上乙個反斜槓。例如,雙引號 就邊成了 反斜槓雙引號 反斜槓 就變成了...

(總結)隱藏PHP版本與PHP基本安全設定

為了安全起見,最好還是將php版本隱藏,以避免一些因php版本漏洞而引起的攻擊。1 隱藏php版本就是隱藏 x powered by php 5.2.13 這個資訊。方法很簡單 編輯php.ini配置檔案,修改或加入 expose php off儲存後重新啟動nginx或apache等相應的web伺...

php執行緒安全的實現

當php執行在如上類似的多執行緒伺服器時,此時的php處在多執行緒的生命週期中。在一定的時間內,乙個程序空間中會存在多個執行緒,同一程序中的多個執行緒公用模組初始化後的全域性變數,如果和php在cli模式下一樣執行指令碼,則多個執行緒會試圖讀寫一些儲存在程序記憶體空間的公共資源 如在多個執行緒公用的...