萬盛學電腦網

 萬盛學電腦網 >> 電腦基本常識 >> PHP安全性分析

PHP安全性分析

class="area"> PHP安全性分析:
PHP安全性設置 服務器並不能阻止所有的安全問題,例如程序漏洞問題、用戶輸入表單問題、PHP文件權限問題等。也可以通過一些手段來迷惑黑客或者別有用心者。1、程序代碼漏洞問題很多 PHP 程序所存在的重大弱點並不是 PHP 語言本身的問題,而是編程者的安全意識不高而導致的。因此,必須時時注意每一段代碼可能存在的問題,去發現非正確數據提交時可能造成的影響。  ?123456<?phpunlink ($evil_var);fwrite ($fp$evil_var);system ($evil_var);exec ($evil_var);?>

 

  必須時常留意你的代碼,以確保每一個從客戶端提交的變量都經過適當的檢查,然後問自己以下一些問題:此腳本是否只能影響所預期的文件?非正常的數據被提交後能否產生作用?此腳本能用於計劃外的用途嗎?此腳本能否和其它腳本結合起來做壞事?是否所有的事務都被充分記錄了?在寫代碼的時候問自己這些問題,否則以後可能要為了增加安全性而重寫代碼了。注意了這些問題的話,也許還不完全能保證系統的安全,但是至少可以提高安全性。還可以考慮關閉 register_globals,magic_quotes 或者其它使編程更方便但會使某個變量的合法性,來源和其值被搞亂的設置。 2、用戶輸入表單問題驗證用戶輸入的任何數據,保證PHP代碼的安全。注意1:JS只是為了提高來訪用戶的體驗而產生的,而不是驗證的工具。因為任何一個來訪的用戶都可能會,也有可能無意間就禁用了客戶端腳本的執行,從而跳過這層驗證。所以我們必須在PHP的服務器端程序上檢驗這些數據。注意2:不要使用$_SERVER['HTTP_REFERER']這個超級變量來檢查數據的來源地址,一個很小的菜鳥黑客都會利用工具來偽造這個變量的數據,盡可能利用Md5,或者rand等函數來產生一個令牌,驗證來源的時候,驗證這個令牌是否匹配。3、PHP文件權限問題PHP 被設計為以用戶級別來訪問文件系統,所以完全有可能通過編寫一段 PHP 代碼來讀取系統文件如/etc/passwd,更改網絡連接以及發送大量打印任務等等。因此必須確保 PHP 代碼讀取和寫入的是合適的文件。請看下面的代碼,用戶想要刪除自己主目錄中的一個文件。假設此情形是通過 web 界面來管理文件系統,因此 Apache用戶有權刪除用戶目錄下的文件。 ?1234567<?php$username $_POST['user_submitted_name'];$homedir "/home/$username";$file_to_delete "$userfile";unlink ("$homedir/$userfile");echo "$file_to_delete has been deleted!";?>

 

既然 username 變量可以通過用戶表單來提交,那就可以提交別人的用戶名和文件名,並刪除該文件。這種情況下,就要考慮其它方式的認證:只給 PHP 的 web 用戶很有限的權限。檢查所有提交上來的變量。以下是更加安全的文件名和變量的驗證和檢查: ?12345678910<?php
copyright © 萬盛學電腦網 all rights reserved