首頁  >  文章  >  後端開發  >  php用戶提交的數據

php用戶提交的數據

伊谢尔伦
伊谢尔伦原創
2016-11-22 10:41:211028瀏覽

很多 PHP 程式所存在的重大弱點並不是 PHP 語言本身的問題,而是程式設計者的安全意識不高而導致的。因此,必須時時注意每一段程式碼可能存在的問題,去發現非正確資料提交時可能造成的影響。

Example #1 危險的變數用法

<?php
    // 从用户目录中删除一个文件,或者……能删除更多的东西?
    unlink ($evil_var);
   // 记录用户的登陆,或者……能否在 /etc/passwd 添加数据?
   fwrite ($fp, $evil_var);
    // 执行一些普通的命令,或者……可以执行 rm -rf * ?
    system ($evil_var);
    exec ($evil_var);
?>

必須時常留意你的程式碼,以確保每一個從客戶端提交的變數都經過適當的檢查,然後問自己以下一些問題:

此腳本是否只能影響所預期的文件?

非正常的資料提交後能否產生作用?

此腳本能用於計劃外的用途嗎?

此腳本能否和其它腳本結合起來做壞事?

是否所有的事務都被充分記錄了?

在寫程式碼的時候問自己這些問題,否則以後可能要為了增加安全性而重寫程式碼了。注意了這些問題的話,也許還不完全保證系統的安全,但是至少可以提高安全性。

也可以考慮關閉 register_globals,magic_quotes 或者其它使程式設計更方便但會使某個變數的合法性,來源和其值被搞亂的設定。在開發時,可以使用 error_reporting(E_ALL) 模式來幫助檢查變數使用前是否有被檢查或被初始化,這樣就可以防止某些非正常的資料的撓亂了。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn