php 安全包含文件系统,PHP_PHP四大安全策略,一、文件系统安全php如果具有r - phpStudy...
PHP四大安全策略
一、文件系統(tǒng)安全
php如果具有root權(quán)限,且在腳本中允許用戶刪除文件,那么用戶提交數(shù)據(jù),不進行過濾,就非常有可能刪除系統(tǒng)文件
// 從用戶目錄中刪除指定的文件
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>
上面的代碼,假設(shè)用戶提交的$userfile值是 ../etc/,那么/etc目錄就會被刪除
防范文件系統(tǒng)攻擊,策略如下
只給php有限的權(quán)限
用戶提交上來的變量要監(jiān)測和過濾,不能包含文件路徑等特殊字符
盡量避免使用PHP操作文件(刪除),如果有這方面的需求,那用戶可刪除文件也必須是系統(tǒng)生成的隨機名稱,不可被用戶控制
二、數(shù)據(jù)庫安全數(shù)據(jù)庫安全主要防范的是sql injection,即sql注入攻擊,提升數(shù)據(jù)庫安全的策略如下:
不用使用root帳號或者數(shù)據(jù)庫所有者帳號連接數(shù)據(jù)庫,連接數(shù)據(jù)庫限定連接用戶的ip
使用php的pdo擴展,有效防止sql注入,除了安全方面的優(yōu)勢,php的pdo擴展在性能方面有有很大優(yōu)勢
請參看 http://php.net/manual/en/pdo.prepared-statements.php
對一些敏感信息進行加密,常見的比如對密碼進行加密
三、用戶數(shù)據(jù)過濾對用戶數(shù)據(jù)過濾,可以防范XSS和CSRF攻擊
使用白名單(用戶輸入是固定模式)的方式
比如用戶名只能使用數(shù)字字母,那么可以使用函數(shù)ctype_alnum判斷
對用戶輸入使用函數(shù) htmlentities或者htmlspecialchars進行處理,輸入url不允許傳入非http協(xié)議
用戶身份驗證使用令牌 token(csrf)
http://htmlpurifier.org/ HTML Purifier 是開源的防范xss攻擊的有效解決方案,
四、其他安全策略線上環(huán)境關(guān)閉錯誤報告(error_reporting,dislay_erros,可在php.ini中配置error_log路徑,記錄錯誤信息,這樣有助于發(fā)現(xiàn)可能的用戶攻擊)
Register Globals,棄用(移除)的特性,不要使用
魔術(shù)引號特性,不要開啟,在PHP-5.4中已經(jīng)被移除
盡量使用PHP的最新版本,最新版本修復(fù)了已知的很多安全漏洞和bug
代碼中嚴(yán)格遵守上述策略,基本能保證代碼不會有太多的安全漏洞,能防范常見攻擊。相關(guān)閱讀:
詳解Android JS相互調(diào)用
js防止頁面被iframe調(diào)用的方法
php實現(xiàn)使用正則將文本中的網(wǎng)址轉(zhuǎn)換成鏈接標(biāo)簽
Java對時間的簡單操作實例
javascript瀏覽器兼容教程之事件處理
jQuery選擇器基礎(chǔ)入門教程
CSS3實現(xiàn)的炫酷菜單代碼分享
PHP遍歷某個目錄下的所有文件和子文件夾的實現(xiàn)代碼
javascript生成隨機顏色示例代碼
JavaScript使用指針操作實現(xiàn)約瑟夫問題實例
MySQL SQL語句優(yōu)化的10條建議
jQuery.deferred對象使用詳解
javascript帶回調(diào)函數(shù)的異步腳本載入方法實例分析
jQuery拖拽插件gridster使用指南
總結(jié)
以上是生活随笔為你收集整理的php 安全包含文件系统,PHP_PHP四大安全策略,一、文件系统安全php如果具有r - phpStudy...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曝小米MIX Fold 3配备潜望式长焦
- 下一篇: 动态规划算法php,php算法学习之动态