最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP安全防范技巧分享

 更新時間:2011年11月03日 00:01:02   作者:  
這里簡單介紹一些基本編程要點, 相對系統(tǒng)安全來說,php安全防范更多要求編程人員對用戶輸入的各種參數(shù)能更細(xì)心.
PHP代碼安全和XSS,SQL注入等對于各類網(wǎng)站的安全非常中用,尤其是UGC(User Generated Content)網(wǎng)站,論壇和電子商務(wù)網(wǎng)站,常常是XSS和SQL注入的重災(zāi)區(qū)。這里簡單介紹一些基本編程要點, 相對系統(tǒng)安全來說,php安全防范更多要求編程人員對用戶輸入的各種參數(shù)能更細(xì)心.

php編譯過程中的安全
建議安裝Suhosin補丁,必裝安全補丁

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注入,但是這種方式對中文編碼仍然是有問題的。addslashes的問題在于黑客可以用0xbf27來代替單引號,GBK編碼中0xbf27不是一個合法字符,因此addslashes只是將0xbf5c27,成為一個有效的多字節(jié)字符,其中的0xbf5c仍會被看作是單引號,具體見這篇文章)。用mysql_real_escape_string函數(shù)也需要指定正確的字符集,否則依然可能有問題。
prepare + execute(PDO)
ZendFramework可以用DB類的quote或者quoteInto, 這兩個方法是根據(jù)各種數(shù)據(jù)庫實施不用方法的,不會像mysql_real_escape_string只能用于mysql

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

strip_tags, 刪除string中所有html標(biāo)簽
htmlspecialchars,只對”<”,”>”,”;”,”'”字符進(jìn)行轉(zhuǎn)義
htmlentities,對所有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ù)組。并通過去掉上傳目錄的PHP解釋功能來防止用戶上傳php腳本。
ZF框架下可以考慮使用File_upload模塊

Session,Cookie和Form的安全處理
不要依賴Cookie進(jìn)行核心驗證,重要信息需要加密, Form Post之前對傳輸數(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回來之后對參數(shù)進(jì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安全檢測工具(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
Remote PHP Vulnerability Scanner(自動化 PHP頁面缺陷分析, XSS檢測功能較強(qiáng))
PHPIDS - PHP 入侵檢測系統(tǒng)

相關(guān)文章

  • 基于php+redis實現(xiàn)布隆過濾器

    基于php+redis實現(xiàn)布隆過濾器

    布隆過濾器(Bloom filter)是一種用于快速判斷一個元素是否存在于集合中的數(shù)據(jù)結(jié)構(gòu),它可以有效地檢索數(shù)據(jù),而不需要存儲實際的元素本身,本文給大家介紹了如何基于php+redis實現(xiàn)布隆過濾器,感興趣的朋友可以參考下
    2023-12-12
  • php debug 安裝技巧

    php debug 安裝技巧

    軟件開發(fā)的斷點調(diào)試是必不可少,這里介紹ubuntu10.04中eclipse工具中php的調(diào)試配置。
    2011-04-04
  • PHP橋接模式Bridge Pattern的優(yōu)點與實現(xiàn)過程

    PHP橋接模式Bridge Pattern的優(yōu)點與實現(xiàn)過程

    這篇文章主要介紹了PHP橋接模式Bridge Pattern的優(yōu)點與實現(xiàn)過程,橋接模式是一種結(jié)構(gòu)型模式,它將抽象部分與實現(xiàn)部分分離開來,使它們可以獨立地變化
    2023-03-03
  • PHP內(nèi)部實現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法

    PHP內(nèi)部實現(xiàn)打亂字符串順序函數(shù)str_shuffle的方法

    這篇文章主要給大家介紹了關(guān)于PHP內(nèi)部實現(xiàn)打亂字符串順序函數(shù)str_shuffle的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 使用PHP訪問RabbitMQ消息隊列的方法示例

    使用PHP訪問RabbitMQ消息隊列的方法示例

    這篇文章主要介紹了使用PHP訪問RabbitMQ消息隊列的方法,結(jié)合實例形式分析了RabbitMQ消息隊列的相關(guān)擴(kuò)展安裝、隊列建立、隊列綁定、消息發(fā)送、消息接收等相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • 詳解PHP實現(xiàn)定時任務(wù)的五種方法

    詳解PHP實現(xiàn)定時任務(wù)的五種方法

    這幾天需要用PHP寫一個定時抓取網(wǎng)頁的服務(wù)器應(yīng)用。 在網(wǎng)上搜了一下解決辦法, 找到幾種解決辦法,現(xiàn)總結(jié)如下。
    2016-07-07
  • PHP時間相關(guān)常用函數(shù)用法示例

    PHP時間相關(guān)常用函數(shù)用法示例

    這篇文章主要介紹了PHP時間相關(guān)常用函數(shù)用法,結(jié)合實例形式詳細(xì)分析了PHP日期時間函數(shù)常見操作方法與使用注意事項,需要的朋友可以參考下
    2020-06-06
  • PHP解壓tar.gz格式文件的方法

    PHP解壓tar.gz格式文件的方法

    這篇文章主要介紹了PHP解壓tar.gz格式文件的方法,較為詳細(xì)的介紹了PHP安裝pear擴(kuò)展及解壓tar.gz格式文件的具體實現(xiàn)技巧,需要的朋友可以參考下
    2016-02-02
  • php獲取網(wǎng)頁請求狀態(tài)程序示例

    php獲取網(wǎng)頁請求狀態(tài)程序示例

    對于網(wǎng)頁返回狀態(tài)代碼多數(shù)情況下我們的查看方法就是使用站長工具或ff瀏覽器等來查看,極少有人想到自己寫一個查看狀態(tài)代碼的功能,本文就此簡述php獲取網(wǎng)頁請求狀態(tài)程序示例,需要的朋友可以參考下
    2014-06-06
  • PHP調(diào)用全國天氣預(yù)報數(shù)據(jù)接口查詢天氣示例

    PHP調(diào)用全國天氣預(yù)報數(shù)據(jù)接口查詢天氣示例

    這篇文章主要介紹了PHP調(diào)用全國天氣預(yù)報數(shù)據(jù)接口查詢天氣,涉及第三方平臺的key申請、接口數(shù)據(jù)調(diào)用及curl相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02

最新評論

巢湖市| 仁怀市| 遂昌县| 繁昌县| 同心县| 简阳市| 合阳县| 绿春县| 来凤县| 日照市| 永嘉县| 板桥市| 永泰县| 波密县| 余江县| 泾阳县| 新乐市| 上高县| 临沧市| 霍林郭勒市| 马龙县| 大洼县| 巩义市| 巩义市| 牡丹江市| 东乡县| 镇赉县| 伊川县| 淮滨县| 双流县| 孟州市| 通许县| 东乌珠穆沁旗| 东兰县| 临澧县| 怀集县| 嘉鱼县| 岳西县| 东城区| 来宾市| 邻水|