掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

PHP安全設置讓黑(hēi)客糾結去吧(ba)

2019/3/8 18:58:23

PHP安全設置讓黑(hēi)客糾結去吧(ba)

建議安裝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預處理(lǐ)

Mysql_real_escape_string (很多PHPer仍在依靠Addslashes防止SQL注入,但(dàn)是這種方式對中文(wén)編碼仍然是有(yǒu)問題的(de)。Addslashes的(de)問題在于黑(hēi)客可(kě)以用(yòng) 0xbf27來代替單引号,GBK編碼中0xbf27不是一個(gè)合法字符,因此Addslashes隻是将0xbf5c27,成爲一個(gè)有(yǒu)效的(de)多字節字符,其 中的(de)0xbf5c仍會(huì)被看作是單引号,具體見這篇文(wén)章(zhāng))。用(yòng)Mysql_real_escape_string函數也(yě)需要指定正确的(de)字符集,否則依然可(kě)能(néng) 有(yǒu)問題。

Prepare + Execute(PDO)

ZendFramework可(kě)以用(yòng)DB類的(de)Quote或者QuoteInto, 這兩個(gè)方法是根據各種數據庫實施不用(yòng)方法的(de),不會(huì)像Mysql_real_escape_string隻能(néng)用(yòng)于Mysql

用(yòng)戶輸入的(de)處理(lǐ)

無需保留HTML标簽的(de)可(kě)以用(yòng)以下方法

Strip_tags, 删除String中所有(yǒu)Html标簽

Htmlspecialchars,隻對”<”,”>”,”;”,”’”字符進行(xíng)轉義

Htmlentities,對所有(yǒu)Html進行(xíng)轉義

必須保留HTML标簽情況下可(kě)以考慮以下工(gōng)具:

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

上(shàng)傳文(wén)件(jiàn)

用(yòng)Is_uploaded_file和(hé)Move_uploaded_file函數,使用(yòng)HTTP_POST_FILES[]數組。并通過去掉上(shàng)傳目錄的(de)PHP解釋功能(néng)來防止用(yòng)戶上(shàng)傳Php腳本。

ZF框架下可(kě)以考慮使用(yòng)File_upload模塊

Session,Cookie和(hé)Form的(de)安全處理(lǐ)

不要依賴Cookie進行(xíng)核心驗證,重要信息需要加密, Form Post之前對傳輸數據進行(xíng)哈希, 例如(rú)你(nǐ)發出去的(de)Form元素如(rú)下:



<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回來之後對參數進行(xíng)驗證

$Str = "";

Foreach(

<# WebPartBody #>POST['H'] As $Key=>$Value) {

$Str .= $Key.$Value;

}

If(

<# WebPartBody #>POST['Hash'] != Md5($Str.$Secret)) {

Echo "Hidden Form Data Modified"; Exit;

}

PHP安全檢測工(gōng)具(XSS和(hé)SQL Insertion)

Wapiti - Web Application Security Auditor(Wapiti - 小(xiǎo)巧的(de)站點漏洞檢測工(gōng)具) (SQL Injection/XSS攻擊檢查工(gōng)具)

安裝/使用(yòng)方法:

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 源碼缺陷分(fēn)析工(gōng)具)

安裝: Apt-Get Install Default-Jdk
 


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号