一、表單測試:
空白字符,控制字符,非字母數據(如符號&,*等),超長(cháng)輸入(大于256個(gè)字符),留言版垃圾,二進(jìn)制數據,其他編碼數據(如ASICII,UTF-8,十六進(jìn)制,八進(jìn)制等),SQL諸如,XSS
處理:設定長(cháng)度規則(合法用戶(hù)不會(huì )寫(xiě)小說(shuō)),若能發(fā)郵件的地方只能一次一個(gè)發(fā)一人,錯誤處理進(jìn)行重定向或錯誤提示,
二、系統調用:exec(),sysetem(),backtick。
1.部署的正式環(huán)境去掉sudo命令(禁止該命令)
2.使用escapeshellcmd(),escapeshellarg()進(jìn)行轉義保護系統調用,
3.使用固定方式調用系統命令,封裝api,如將exec()來(lái)移動(dòng)文件封裝為只接受文件名的函數調用,避免直接調用,讓api功能單一,exec()帶太多額外不方便檢測,如只接受文件名的函數則更容易檢測變量是否滿(mǎn)足條件
4.驗證用戶(hù)的輸入
三、緩沖區溢出:
當載入程序后,程序會(huì )被保存在內存中,內存其他部分也就是緩沖區,將被用來(lái)保存程序數據(作為全局變量保存)、任何程序設計的函數庫以及兩個(gè)數據結構(堆棧和堆),堆棧是從下往上填充,若參數大于參數的緩沖區所準備的空間,它將覆蓋下一個(gè)可用的內存地址,返回地址緩沖區,于是返回結果可能為一段惡意結構,
四、密碼強度:
1.避免任何語(yǔ)言的字典單詞
2.使用大小寫(xiě)字母或其他字符組合
3.密碼長(cháng)度大于6-8位,可以更多
4.創(chuàng )建密碼提示符代替答案,如一句話(huà)的首寫(xiě)字母
5.定期修改密碼
6.是否以加密的方式存儲密碼
7.保存密碼的數據庫是否安全
8.若賬戶(hù)可以發(fā)送郵件,是否實(shí)現了驗證碼來(lái)過(guò)濾避免自動(dòng)腳本創(chuàng )建賬戶(hù)
5.會(huì )話(huà)安全:會(huì )話(huà)固化,會(huì )話(huà)劫持,會(huì )話(huà)毒化(注入)
六、xss跨站攻擊(htmlspecialchars, strip_tags),sql注入(mysql_real_escape_string, addslashes),csrf,掛馬,危險腳本(如phpinfo這種暴露版本信息),遠程文件包含allow_url_include=Off,管理后臺泄露(單一入口在目錄,其他php不再web目錄),身份權限驗證
七、apache配置:
php.ini中disable_functions可以禁用php函數(如disable_functions = phpinfo,gzcompress,apache_note,apache_setenv,proc_get_status,exec,passthru,proc_nice,proc_open,proc_terminate,shell_exec,system,popen,ini_restore,syslog,define_syslog_variables,symlink,link,error_log,leak,dbmopen,openlog,closelog,popen,pclose,stream_socket_server)
1.隱藏版本信息和http頭信息:ServerSignature Off,ServerTokens Prod,隱藏php錯誤(php.ini expose_php = On)
2.目錄遍歷
3.將apache限制在自身目錄結構中,http.conf設置<Directory 目錄> Order….Deny……..</Directory>,在非web目錄不能打開(kāi)php腳本,比如上傳目錄不能運行
4.關(guān)閉多于的配置和模塊
5.使用ModSecurity包過(guò)濾工具(有利有弊,如增加了開(kāi)銷(xiāo),還會(huì )將空格,點(diǎn)號,左方括號轉換為下劃線(xiàn)等)
額外補充:
Path Traversal(目錄遍歷)
漏洞描述
目錄遍歷指的是應用程序對文件路徑?jīng)]有檢查導致服務(wù)器上的敏感文件/代碼泄漏。
安全隱患
可能會(huì )導致源代碼等敏感信息泄露。
修復建議
嚴格檢查文件路徑參數,限制在指定的范圍。嚴格限制文件路徑參數,不允許用戶(hù)控制文件路徑相關(guān)的參數,限定文件路徑范圍。
在php.ini中進(jìn)行如下配置:
open_basedir = 服務(wù)器上WEB目錄的路徑(注,路徑最后需要加上斜杠作為結束),如:open_basedir = /var/www/html/
Directory Indexing(目錄泄露)
漏洞描述
應用服務(wù)器配置不當,導致應用服務(wù)器的目錄列表被展示。
安全隱患
可能會(huì )導致敏感信息或源代碼泄露。
修復建議
配置應用服務(wù)器禁止目錄列表展示。
apache修改方法:
<Directory “E:/www”>下面的Options Indexes FollowSymLinks
改成
Options FollowSymLinks
然后
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改成
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
八、保護MySQL:
1.單機的話(huà)則關(guān)閉遠程訪(fǎng)問(wèn)或則只能固定ip訪(fǎng)問(wèn)
2.修改管理員root用戶(hù)名且增加密碼不為空
3.為一個(gè)應用開(kāi)啟單獨的賬戶(hù)和密碼設置最小化的權限,如不能刪除數據表等
4.刪除多于的MySQL賬戶(hù)和數據庫(如test)
九、php配置php.ini:
1.safe_mod,safe_mod_gid開(kāi)關(guān)
2.open_basedir,safe_mode_exec_dir
3.expose_php,register_globals,session_cookie_lifetime
4.diplay_errors
5.遠程文件打開(kāi)等
十、Fuzz測試:PowerFuzzer,測試工具集:CAL9000
聯(lián)系客服