四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

PHP安全防范技巧分享

php代碼安全和XSS,SQL注入等對(duì)于各類網(wǎng)站的安全非常中用,尤其是UGC(User Generated Content)網(wǎng)站,論壇和電子商務(wù)網(wǎng)站,常常是XSS和SQL注入的重災(zāi)區(qū)。這里簡(jiǎn)單介紹一些基本編程要點(diǎn), 相對(duì)系統(tǒng)安全來(lái)說(shuō),php安全防范更多要求編程人員對(duì)用戶輸入的各種參數(shù)能更細(xì)心.

php編譯過(guò)程中的安全
建議安裝Suhosin補(bǔ)丁,必裝安全補(bǔ)丁

php.ini安全設(shè)置
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預(yù)處理
mysql_real_escape_string (很多phper仍在依靠addslashes防止SQL注入,但是這種方式對(duì)中文編碼仍然是有問(wèn)題的。addslashes的問(wèn)題在于黑客可以用0xbf27來(lái)代替單引號(hào),GBK編碼中0xbf27不是一個(gè)合法字符,因此addslashes只是將0xbf5c27,成為一個(gè)有效的多字節(jié)字符,其中的0xbf5c仍會(huì)被看作是單引號(hào),具體見(jiàn)這篇文章)。用mysql_real_escape_string函數(shù)也需要指定正確的字符集,否則依然可能有問(wèn)題。
prepare + execute(PDO)
ZendFramework可以用DB類的quote或者quoteInto, 這兩個(gè)方法是根據(jù)各種數(shù)據(jù)庫(kù)實(shí)施不用方法的,不會(huì)像mysql_real_escape_string只能用于mysql

用戶輸入的處理
無(wú)需保留HTML標(biāo)簽的可以用以下方法

strip_tags, 刪除string中所有html標(biāo)簽
htmlspecialchars,只對(duì)”<”,”>”,”;”,”'”字符進(jìn)行轉(zhuǎn)義
htmlentities,對(duì)所有html進(jìn)行轉(zhuǎn)義

必須保留HTML標(biāo)簽情況下可以考慮以下工具:
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函數(shù),使用HTTP_POST_FILES[]數(shù)組。并通過(guò)去掉上傳目錄的php解釋功能來(lái)防止用戶上傳php腳本。
ZF框架下可以考慮使用File_upload模塊

Session,Cookie和Form的安全處理
不要依賴Cookie進(jìn)行核心驗(yàn)證,重要信息需要加密, Form Post之前對(duì)傳輸數(shù)據(jù)進(jìn)行哈希, 例如你發(fā)出去的form元素如下:

程序代碼

<pre lang="php"><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回來(lái)之后對(duì)參數(shù)進(jìn)行驗(yàn)證

程序代碼
復(fù)制代碼 代碼如下:
$str = "";
foreach($_POST['H'] as $key=>$value) {
$str .= $key.$value;
}
if($_POST['hash'] != md5($str.$secret)) {
echo "Hidden form data modified"; exit;
}


php安全檢測(cè)工具(XSS和SQL Insertion)
Wapiti - Web application security auditor(Wapiti - 小巧的站點(diǎn)漏洞檢測(cè)工具) (SQL injection/XSS攻擊檢查工具)
主站蜘蛛池模板: 虐猫视频哪里可以看| 乱世佳人电视剧免费观看完整版 | 流浪地球免费观看| 戴氏家族目前最大官| 消防给水及消火栓系统技术规范| 黑色纳粹电影完整版| 恋人电影| 赵健的读书日记| 真爱诺言大结局| 三人越谷文言文翻译| 91精品在线视频播放| 冷门森系ins冷淡风壁纸| 花样厨神 电影| 徐贤电视剧| 新闻联播台词| 黄网站免费在线观看| 卡通图片头像| 小娘惹电视连续剧48集剧情| 少年派2高清免费观看电视剧预告| 风俗通| 蒋祖曼| 意乱情迷| 念念相忘电影免费观看| 左耳演员表| 混的头像| 黑帮大佬365日| 我的快乐歌词| angelina全集在线观看| 小林凉子| 荒岛大逃亡电影| 黄网站免费观看视频| 佐拉| 老阿姨电影电视剧免费| 生死搏斗| 南游记电视剧全集第30集| 乔治娅·格洛梅| 黑帮大佬和我的第365天| http://www.douyin.com/| 特殊的按摩| 电影《皮囊》| 陈稳|