欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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,只對”<”,”>”,”;”,”'”字符進行轉(zhuǎn)義
htmlentities,對所有html進行轉(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進行核心驗證,重要信息需要加密, Form Post之前對傳輸數(shù)據(jù)進行哈希, 例如你發(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ù)進行驗證

程序代碼
復(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檢測功能較強)
PHPIDS - PHP 入侵檢測系統(tǒng)

相關(guān)文章

  • PHP基于XMLWriter操作xml的方法分析

    PHP基于XMLWriter操作xml的方法分析

    這篇文章主要介紹了PHP基于XMLWriter操作xml的方法,結(jié)合實例形式分析了php使用XMLWriter生成及解析xml數(shù)據(jù)的操作技巧,需要的朋友可以參考下
    2017-07-07
  • 如何理解PHP程序執(zhí)行的過程原理

    如何理解PHP程序執(zhí)行的過程原理

    本文主要介紹了PHP程序指定的過程原理。為了以后能開發(fā)PHP擴展,就一定要了解PHP的執(zhí)行順序。這篇文章就是為C開發(fā)PHP擴展做鋪墊。
    2021-05-05
  • PHP標(biāo)準(zhǔn)庫(PHP SPL)詳解

    PHP標(biāo)準(zhǔn)庫(PHP SPL)詳解

    今天小編就為大家分享一篇關(guān)于PHP標(biāo)準(zhǔn)庫(PHP SPL)詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • php如何調(diào)用webservice應(yīng)用介紹

    php如何調(diào)用webservice應(yīng)用介紹

    Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統(tǒng)中傳遞過來的請求,輕量級的獨立的通訊技術(shù),接下來將詳細(xì)介紹php如何調(diào)用webservice,需要的朋友可以了解下
    2012-11-11
  • PHP 圖片上傳代碼

    PHP 圖片上傳代碼

    昨天晚上自學(xué)的一段代碼到公司來調(diào)試。很順利,到了中午的時候基本上添加、修改、刪除,這些在代碼世界中最基礎(chǔ)的功能都基本實現(xiàn)了,蠻有成就感的。
    2011-09-09
  • JSON字符串傳到后臺PHP處理問題的解決方法

    JSON字符串傳到后臺PHP處理問題的解決方法

    這篇文章主要介紹了JSON字符串傳到后臺PHP處理問題的解決方法,需要的朋友可以參考下
    2016-06-06
  • php中通過curl smtp發(fā)送郵件

    php中通過curl smtp發(fā)送郵件

    公司的云平臺把fsockopen關(guān)掉了,如果要使用smtp外網(wǎng)的郵箱來發(fā)送郵件的話 只能試試使用curl來進行了
    2012-06-06
  • CentOS 6.2使用yum安裝LAMP以及phpMyadmin詳解

    CentOS 6.2使用yum安裝LAMP以及phpMyadmin詳解

    本篇文章是對CentOS 6.2使用yum安裝LAMP以及phpMyadmin進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 修改php.ini不生效問題解決方法(上傳大于8M的文件)

    修改php.ini不生效問題解決方法(上傳大于8M的文件)

    上傳大于8M的文件需要修改php的配置才可以生效,搜索好多的參考資料,結(jié)果修改還是沒有生效,經(jīng)過一番折騰終于找到了解決方法,下面與大家分享了
    2013-06-06
  • PHP中include()與require()的區(qū)別說明

    PHP中include()與require()的區(qū)別說明

    引用文件的方法有兩種:require 及 include。兩種方式提供不同的使用彈性。
    2010-03-03

最新評論