中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP開發中有哪些安全防范知識

發布時間:2021-01-16 09:30:34 來源:億速云 閱讀:153 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關PHP開發中有哪些安全防范知識,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

PHP代碼安全和XSS,SQL注入等對于各類網站的安全非常中用,尤其是UGC(User Generated Content)網站,論壇和電子商務網站,常常是XSS和SQL注入的重災區。這里簡單介紹一些基本編程要點, 相對系統安全來說,php安全防范更多要求編程人員對用戶輸入的各種參數能更細心.

php編譯過程中的安全

建議安裝Suhosin補丁,必裝安全補丁
php.ini安全設置

復制代碼 代碼如下:


register_global = off
magic_quotes_gpc = off
display_error = off
log_error = on
# allow_url_fopen = off
expose_php = off
open_basedir =
safe_mode = on
disable_function = exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source,get_cfg_var
safe_mode_include_dir =


DB SQL預處理
mysql_real_escape_string (很多PHPer仍在依靠addslashes防止SQL注入,但是這種方式對中文編碼仍然是有問題的。addslashes的問題在于黑客可以用 0xbf27來代替單引號,GBK編碼中0xbf27不是一個合法字符,因此addslashes只是將0xbf5c27,成為一個有效的多字節字符,其 中的0xbf5c仍會被看作是單引號,具體見這篇文章)。用mysql_real_escape_string函數也需要指定正確的字符集,否則依然可能 有問題。

prepare + execute(PDO)
ZendFramework可以用DB類的quote或者quoteInto, 這兩個方法是根據各種數據庫實施不用方法的,不會像mysql_real_escape_string只能用于mysql

用戶輸入的處理
無需保留HTML標簽的可以用以下方法
strip_tags, 刪除string中所有html標簽
htmlspecialchars,只對”<”,”>”,”;”,”'”字符進行轉義
htmlentities,對所有html進行轉義
必須保留HTML標簽情況下可以考慮以下工具:

復制代碼 代碼如下:


HTML Purifier: HTML Purifier is a standards-compliant HTML filter library written in PHP.
PHP HTML Sanitizer: Remove unsafe tags and attributes from HTML code
htmLawed: PHP code to purify & filter HTML

上傳文件
用is_uploaded_file和move_uploaded_file函數,使用HTTP_POST_FILES[]數組。并通過去掉上傳目錄的PHP解釋功能來防止用戶上傳php腳本。
ZF框架下可以考慮使用File_upload模塊
Session,Cookie和Form的安全處理
不要依賴Cookie進行核心驗證,重要信息需要加密, Form Post之前對傳輸數據進行哈希, 例如你發出去的form元素如下:

復制代碼 代碼如下:


<input type="hidden" name="H[name]" value="<?php echo $Oname?>"/> <input type="hidden" name="H[age]" value="<?php echo $Oage?>"/> <?php $sign = md5('name'.$Oname.'age'.$Oage.$secret); ?> <input type="hidden" name="hash" value="<?php echo $sign?>"" />
POST回來之后對參數進行驗證
$str = "";
foreach($_POST['H'] as $key=>$value) {
$str .= $key.$value;
}
if($_POST['hash'] != md5($str.$secret)) {
echo "Hidden form data modified"; exit;
}


PHP安全檢測工具(XSS和SQL Insertion)
Wapiti - Web application security auditor(Wapiti - 小巧的站點漏洞檢測工具) (SQL injection/XSS攻擊檢查工具)

安裝/使用方法:
apt-get install libtidy-0.99-0 python-ctypes python-utidylib
python wapiti.py http://Your Website URL/ -m GET_XSS
Pixy: XSS and SQLI Scanner for PHP( Pixy - PHP 源碼缺陷分析工具)
安裝: apt-get install default-jdk

上述就是小編為大家分享的PHP開發中有哪些安全防范知識了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

张掖市| 正蓝旗| 绥中县| 乾安县| 孝昌县| 商南县| 石棉县| 安平县| 兴仁县| 纳雍县| 苍山县| 新巴尔虎左旗| 临漳县| 凤山县| 杭锦后旗| 通许县| 台南市| 申扎县| 灵石县| 昌乐县| 馆陶县| 行唐县| 韶山市| 清徐县| 华池县| 彰化县| 敖汉旗| 沙田区| 栾城县| 涞源县| 乌恰县| 天柱县| 孝感市| 利辛县| 浑源县| 西吉县| 施甸县| 青冈县| 兴海县| 内江市| 辽阳市|