PHP安全之以Apache模式安裝時可能遇到的攻擊及解決辦法
當(dāng) PHP 以 Apache 模塊方式安裝時,它將繼承 Apache 用戶(通常為“nobody”)的權(quán)限。這對安全和認證有一些影響。比如,如果用 PHP 來訪問數(shù)據(jù)庫,除非數(shù)據(jù)庫有自己的訪問控制,否則就要使“nobody”用戶可以訪問數(shù)據(jù)庫。這意味著惡意的腳本在不用提供用戶名和密碼時就可能訪問和修改數(shù)據(jù)庫。一個 web Spider 也完全有可能偶然發(fā)現(xiàn)數(shù)據(jù)庫的管理頁面,并且刪除所有的數(shù)據(jù)庫。可以通過 Apache 認證來避免此問題,或者用 LDAP、.htaccess 等技術(shù)來設(shè)計自己的訪問模型,并把這些代碼作為 PHP 腳本的一部分。
通常,一但安全性達到可以使 PHP 用戶(這里也就是 Apache 用戶)承擔(dān)的風(fēng)險極小的程度時候,可能 PHP 已經(jīng)到了阻止向用戶目錄寫入任何文件或禁止訪問和修改數(shù)據(jù)庫的地步了。這就是說,無論是正常的文件還是非正常的文件,無論是正常的數(shù)據(jù)庫事務(wù)來是惡意的請求,都會被拒之門外。
一個常犯的對安全性不利的錯誤就是讓 Apache 擁有 root 權(quán)限,或者通過其它途徑斌予 Apache 更強大的功能。
把 Apache 用戶的權(quán)限提升為 root 是極度危險的做法,而且可能會危及到整個系統(tǒng)的安全。所以除非是安全專家,否則決不要考慮使用 su,chroot 或者以 root 權(quán)限運行。
除此之外還有一些比較簡單的解決方案。比如說可以使用?open_basedir?來限制哪些目錄可以被 PHP 使用。也可以設(shè)置 Apache 的專屬區(qū)域,從而把所有的 web 活動都限制到非用戶和非系統(tǒng)文件之中。
相關(guān)文章:
1. ajax請求添加自定義header參數(shù)代碼2. PHP8.0新功能之Match表達式的使用3. Android實現(xiàn)觸發(fā)html頁面的Button控件點擊事件方式4. Nginx+php配置文件及原理解析5. 解決python腳本中error: unrecognized arguments: True錯誤6. 解決Python 進程池Pool中一些坑7. 無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁8. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究9. 八種Vue組件間通訊方式合集(推薦)10. JavaScript基于用戶照片姓名生成海報
