版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 目錄目錄 q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-url-encoded Content-Lenght: 59 User-Agent: Mozilla/4.0 Host: Connection: Keep-Alive Cookie: JSESSIONID=0000dITLGLqhz1dKkPEtpoYqbN2 uid=fred這兩句sql都符合 string,int,string的模式 999是不可能符合的條件 ,這樣union的結(jié)果就只 剩第二句sql查詢的內(nèi)容 SQL注入:規(guī)避SQL注入 n
2、嚴(yán)格限定參數(shù)類型嚴(yán)格限定參數(shù)類型 明確參數(shù)檢驗(yàn)的邊界,明確參數(shù)檢驗(yàn)的邊界,必須在服務(wù)端執(zhí)行數(shù)據(jù)驗(yàn)證 n采用參數(shù)化查詢的方法(推薦)采用參數(shù)化查詢的方法(推薦) n內(nèi)置過濾系統(tǒng)(本質(zhì)是黑名單,很常見但是不推薦)內(nèi)置過濾系統(tǒng)(本質(zhì)是黑名單,很常見但是不推薦) SQL注入:安全編碼 安全編碼不難,真正困難的是如何做到全面安全,安全編碼不難,真正困難的是如何做到全面安全, 這需要良好的程序設(shè)計(jì)以及編碼習(xí)慣。支離破碎這需要良好的程序設(shè)計(jì)以及編碼習(xí)慣。支離破碎 的設(shè)計(jì)與隨意混雜的編碼難以開發(fā)出安全的系統(tǒng)。的設(shè)計(jì)與隨意混雜的編碼難以開發(fā)出安全的系統(tǒng)。 各種語言與數(shù)據(jù)庫的實(shí)際情況也有所區(qū)別,所以各種語言與數(shù)據(jù)
3、庫的實(shí)際情況也有所區(qū)別,所以 需要具體問題具體分析。需要具體問題具體分析。 1.輸入驗(yàn)證輸入驗(yàn)證 數(shù)字型的輸入必須是合法的數(shù)字; 字符型的輸入中對(duì)進(jìn)行特殊處理; 驗(yàn)證所有的輸入點(diǎn),包括Get,Post,Cookie以及其 他HTTP頭; 2.使用符合規(guī)范的數(shù)據(jù)庫訪問語句使用符合規(guī)范的數(shù)據(jù)庫訪問語句 正確使用靜態(tài)查詢語句,如PreparedStatement SQL注入: PreparedStatement nPreparedStatement為預(yù)編譯指令為預(yù)編譯指令 nPreparedStatement不允許在插入時(shí)改變查 詢的邏輯結(jié)構(gòu) n所以PreparedStatement將SQL語句預(yù)先
4、編 譯,執(zhí)行前語句已經(jīng)準(zhǔn)備好了,執(zhí)行階段 只是把輸入串作為數(shù)據(jù)處理,不再需要對(duì) SQL語句進(jìn)行解析 SQL注入: PreparedStatement 在在JSPJSP中要禁止使用中要禁止使用StatementStatement,如下的代碼會(huì)導(dǎo)致,如下的代碼會(huì)導(dǎo)致SQLSQL注入:注入: Bubble String sql = “select * from Users where name=” + name; PreparedStatement pstmt = con.prepare(sql); String sql = “select * from 表表 where 用戶名用戶名=?” pst
5、mt.setInt(1, request.getParameter(“name”); PreparedStatement pstmt = con.prepare(sql); Statement stmt = con.createStatement(); stmt.executeUpdate(select * from 表 where 用戶名 = + 變量值 +); 應(yīng)當(dāng)全部使用PreparedStatement來防止SQL注入 但是在使用PreparedStatement,也要注意符合編碼規(guī)范,如下的方法也 會(huì)導(dǎo)致SQL注入: 安全安全 危險(xiǎn)危險(xiǎn) 危險(xiǎn)危險(xiǎn) SQL注入: Mysqli n并不是
6、所以數(shù)據(jù)庫都支持并不是所以數(shù)據(jù)庫都支持 PreparedStatement nMysql就明確表示不支持,但是就明確表示不支持,但是mysql可以可以 使用自己的預(yù)編譯擴(kuò)展使用自己的預(yù)編譯擴(kuò)展-mysqli nmysqli 同樣是執(zhí)行一個(gè)預(yù)備好的語句,杜 絕SQL的可能 SQL注入:數(shù)據(jù)庫加固 除了在代碼設(shè)計(jì)開發(fā)階段預(yù)防除了在代碼設(shè)計(jì)開發(fā)階段預(yù)防SQLSQL注入外,對(duì)數(shù)據(jù)庫進(jìn)行加固也能夠注入外,對(duì)數(shù)據(jù)庫進(jìn)行加固也能夠 把攻擊者所能造成的損失控制在一定范圍內(nèi);把攻擊者所能造成的損失控制在一定范圍內(nèi); 主要包括:主要包括: 最小權(quán)限原則,最小權(quán)限原則,禁止將任何高權(quán)限角色(例如禁止將任何高權(quán)限角色
7、(例如sasa,dbadba等等)賦于應(yīng)等等)賦于應(yīng) 用程序數(shù)據(jù)庫賬號(hào)。更安全的方法是單獨(dú)為應(yīng)用創(chuàng)建有限訪問帳戶。用程序數(shù)據(jù)庫賬號(hào)。更安全的方法是單獨(dú)為應(yīng)用創(chuàng)建有限訪問帳戶。 拒絕用戶訪問敏感的系統(tǒng)存儲(chǔ)過程,如前面示例的拒絕用戶訪問敏感的系統(tǒng)存儲(chǔ)過程,如前面示例的 xp_dirtree,xp_cmdshellxp_dirtree,xp_cmdshell等等;等等; 限制用戶所能夠訪問的數(shù)據(jù)庫表;限制用戶所能夠訪問的數(shù)據(jù)庫表; 目錄目錄 過濾:過濾:將script,style,iframe,onmouseover等有害 字符串去掉,但是保留 scriptalert(XSS)/script imp
8、orthttp:/ 更多實(shí)例可見:更多實(shí)例可見:/xss.html 綜合起來有綜合起來有 91種種HTML標(biāo)簽標(biāo)簽,十多種編碼方式十多種編碼方式,數(shù)種對(duì)象類型數(shù)種對(duì)象類型 MySpaceMySpace即即 采用的過濾采用的過濾 XSS漏洞:轉(zhuǎn)義 String title = request.getParameter(“title”); String id = request.getParameter(“id”); . String title = request.getParameter(“title”); String id = request.getPa
9、rameter(“id”); . 把輸入的值轉(zhuǎn)義成html代碼 對(duì)策:轉(zhuǎn)義比過濾更好 安全安全 危險(xiǎn)危險(xiǎn) XSS漏洞:防范措施總結(jié)防范措施總結(jié) 一.過濾: 有時(shí)候過濾會(huì)導(dǎo)致意外的結(jié)果,例如alices 變成了alices。 有時(shí)候需要多次過濾,例如script過濾掉后還是。 需要注意多個(gè)過濾器的先后次序。當(dāng)多個(gè)過濾器一起生效時(shí),有可能后進(jìn)行的過濾導(dǎo)致前面 的過濾失效。例如過濾器1要過濾ABC,過濾器2要過濾DEF,那么ABDEFC在依次通過1,2 過濾器后變成了ABC,這樣相當(dāng)于繞開過濾器1。 二.輸入編碼: 輸入編碼往往可以有全局的解決方案,從設(shè)計(jì)的角度來看,這是最佳的。 一旦數(shù)據(jù)已經(jīng)入庫,
10、就難以用輸出編碼處理。 三.輸出編碼: 輸出編碼有助于開發(fā)者細(xì)粒度控制輸出,但也導(dǎo)致了工作量的增加。 輸出編碼可以解決輸入編碼無法處理的已入庫數(shù)據(jù)。 四.用戶安全加固: 小心點(diǎn)擊來源不明的URL。 對(duì)瀏覽器進(jìn)行安全加固,例如禁止ActiveX。 永遠(yuǎn)不要點(diǎn)擊自動(dòng)登錄信息! 目錄目錄 String pass = request.getParameter(“pass”); PreparedStatement ps = con.prepareStatement(“update UserTB set password=? Where user=?”); ps.setString(1,user); ps
11、.setString(2,pass); con.executeUpdate(); CSRF:案案例例2 案例案例2: 支持通過保留cookie自動(dòng)登錄的功能,這樣在cookie有效期 內(nèi),用戶訪問就會(huì)以他們上次在此主機(jī)登錄的用戶名自動(dòng)登 錄(例如Gmail的Remember me on this computer)。 另外,上有個(gè)鏈接可以通過get直接給指定對(duì)象轉(zhuǎn)賬,例如: http:/ 這段這段FCKeditor代碼可以通過上傳文件后面加個(gè)代碼可以通過上傳文件后面加個(gè).就可以上傳成功了如:就可以上傳成功了如: shell.php. 在在windows系統(tǒng)上系統(tǒng)上shell.php.=shel
12、l.php;在;在*nix系統(tǒng)一系統(tǒng)一 般使用般使用apache,在,在apache里里shell.php.將認(rèn)為是將認(rèn)為是php文件而執(zhí)行。文件而執(zhí)行。 編輯器上傳漏洞是最危險(xiǎn)的,使用編輯器上傳漏洞是最危險(xiǎn)的,使用 FCKeditor、eWebEditor、 Cuteditor 、Freetextbox、Webhtmleditor、Kindeditor等編輯器的都存在危險(xiǎn), 引用時(shí)應(yīng)刪除其不必要的上傳功能 文件上傳漏洞3:不隨機(jī)重命名的危害不隨機(jī)重命名的危害 n在在win2000下下 代表截?cái)?,如果一人上?.asp .jpg到 win2000上就會(huì)變成1.asp n以前大名鼎鼎的動(dòng)網(wǎng)上傳漏
13、洞是使用的16進(jìn)制00來截?cái)辔?件名或路徑而造成上傳漏洞,現(xiàn)在雖然已經(jīng)滅絕,但是使 用java的程序員還應(yīng)注意,因?yàn)閖ava本身支持16進(jìn)制00截 斷,上傳一個(gè)1.jsp00.jpg將變成1.jsp n很多由于web service,中間件自身存在解析漏洞,造成 1.asp;.jpg,1.php.aaa之類的可以解析 n所以重命名文件名是必要的所以重命名文件名是必要的 文件上傳漏洞:解決方案 n 解決方案 首先編碼者需要對(duì)上傳頁面代碼嚴(yán)格把關(guān),特別是在保存文件的時(shí)候, 考察可能出現(xiàn)的異常字符,如如;, ./,.,空字符等。 其次,對(duì)文件擴(kuò)展名檢查要采取“允許jpg,gif”這樣的檢查,而不要采
14、 取“不允許asp”這樣的檢查,例如IIS允許執(zhí)行.cer類型的腳本。 不可以使用本地的JS來進(jìn)了后綴名驗(yàn)證,必須再服務(wù)器端進(jìn)行驗(yàn)證 最好對(duì)上傳文件的目錄設(shè)置不可執(zhí)行,這可以通過最好對(duì)上傳文件的目錄設(shè)置不可執(zhí)行,這可以通過web服服 務(wù)器配置加固實(shí)現(xiàn)。務(wù)器配置加固實(shí)現(xiàn)。 文件包含漏洞 n 定義: 文件包含漏洞,如果允許客戶端用戶輸入控制動(dòng)態(tài)包含在服務(wù)器端的 文件,會(huì)導(dǎo)致惡意代碼的執(zhí)行及敏感信息泄露,主要包括本地文件包含 和遠(yuǎn)程文件包含兩種形式 n 解決方案: 1.嚴(yán)格檢查變量是否已經(jīng)初始化。 2.建議假定所有輸入都是可疑的,嘗試對(duì)所有輸入提交可能可能包含的文 件地址, 包括服務(wù)器本地文件及遠(yuǎn)程
15、文件,進(jìn)行嚴(yán)格的檢查,參數(shù)中不 允許出現(xiàn)./之類的目錄跳轉(zhuǎn)符。 3.嚴(yán)格檢查include類的文件包含函數(shù)中的參數(shù)是否外界可控。 4.不要僅僅在客戶端做數(shù)據(jù)的驗(yàn)證與過濾,關(guān)鍵的過濾步驟在服務(wù)端進(jìn)行。 5.在發(fā)布應(yīng)用程序之前測試所有已知的威脅。 參考: http:/ 文件包含漏洞-示例 jsp:include page= flush=true/ 示例 : test.jsp?test=./././././etc/passwd - if ($act = “view”) $file = $_GETfile; include $file; index.php?act=view jstack += Fil
16、e.separator + bin + File.separator + jstack; final ByteArrayOutputStream baos = new ByteArrayOutputStream(); Process proc = Runtime.getRuntime().exec(jstack); final InputStream pis = proc.getInputStream(); final InputStream per = proc.getErrorStream(); 此處的問題是此處的問題是exec執(zhí)行內(nèi)容的部分由外部提交的參數(shù)獲得,從而造成了執(zhí)行內(nèi)容的部分由
17、外部提交的參數(shù)獲得,從而造成了 危險(xiǎn),如果危險(xiǎn),如果jstack.jsp?exe=././././windows/system32/cmd ipconfig 就能造成命令執(zhí)行就能造成命令執(zhí)行 命令注入執(zhí)行漏洞命令注入執(zhí)行漏洞 $res = preg_replace(/(w+).$depr.(.$depr./+)/e, $var1=2;, implode($depr,$paths); 命令注入執(zhí)行漏洞命令注入執(zhí)行漏洞 命令執(zhí)行漏洞發(fā)生在PHP的地方是最常見的,php里有多個(gè)函數(shù)可可以動(dòng)態(tài)執(zhí) 行,如: call_user_func() call_user_func_array() create_f
18、unction() preg_replace() 如下面這段thinkphp開發(fā)框架中的正則表達(dá)式代碼就造成了命令執(zhí)行漏洞: 造成該正則表達(dá)式漏洞的原因在于, PHP會(huì)對(duì)用雙引號(hào)包起來的字符進(jìn)行 解析,preg_replace()使用了/e 參數(shù)時(shí)可以執(zhí)行代碼,這種情況下如果2 使用雙引號(hào),那么2的內(nèi)容就會(huì)被當(dāng)成PHP代碼執(zhí)行。 因此PHP程序開發(fā)者應(yīng)避免使用雙引號(hào)來定義參數(shù)。 如下代碼:如下代碼: filepath=request.getparameter(filepath); File f = new File(d:tomcatwebappsROOTdown +filepath); Fil
19、eInputStream inStream = new FileInputStream(f); 如此當(dāng)有人輸入如下如此當(dāng)有人輸入如下URL:download.jsp?filepath=././conf/tomcat- users.xml 就能夠跨目錄下載就能夠跨目錄下載tomcat管理用戶的密碼,從而登陸管理用戶的密碼,從而登陸manager/html對(duì)對(duì) 系統(tǒng)造成危害。系統(tǒng)造成危害。 如果使用先打開目錄的方式將會(huì)提高安全性如果使用先打開目錄的方式將會(huì)提高安全性 File f = new File(d:tomcatwebappsROOTdown); 文件下載漏洞文件下載漏洞 當(dāng)然也可以使用過濾
20、當(dāng)然也可以使用過濾后綴名后綴名和和./的方式的方式 但過濾但過濾./應(yīng)該注意其應(yīng)該注意其. ,./等繞過方式等繞過方式 過濾后綴名應(yīng)該注意區(qū)分大小寫,如下代碼:過濾后綴名應(yīng)該注意區(qū)分大小寫,如下代碼: $filename = $_GETa; if(!eregi(.php$, $filename) echo “不允許下載該類型的文件不允許下載該類型的文件; readfile($filename); 該代碼由于使用的該代碼由于使用的eregi()正則函數(shù)而不是使用更為嚴(yán)謹(jǐn)?shù)膮^(qū)分大小寫的正則函數(shù)而不是使用更為嚴(yán)謹(jǐn)?shù)膮^(qū)分大小寫的 函數(shù)函數(shù)ereg(),因此提交,因此提交url:download.php
21、?filename=download.pHP 就可繞過就可繞過(linux系統(tǒng)本身區(qū)分大小寫但可提交系統(tǒng)本身區(qū)分大小寫但可提交download.php.)。 文件下載漏洞文件下載漏洞 XPath 注入攻擊 Ben Elmore abc test123 Shlomy Gantz xyz 123test XPath xpath = factory.newXPath(); XPathExpression expr = pile(/users/userloginID/text()=+loginID + and password/text()=+password+ /firstname/text();
22、Object result = expr.evaluate(doc, XPathConstants.NODESET); NodeList nodes = (NodeList) result; /繞過身份驗(yàn)證 /users/userLoginID/text()= or 1=1 and password/text()= or 1=1 登錄用戶名輸入以上紅色部分,密碼任意輸 隨 著簡單 XML API、Web 服務(wù)和 Rich Internet Applications (RIAs) 的發(fā) 展,已經(jīng)有很多人使用 XML 文檔代替關(guān) 系數(shù)據(jù)庫,但XML 應(yīng)用程序可能容易 受到代碼注入的攻擊,尤其是 X
23、Path 注入攻擊 整數(shù)溢出 示例代碼: - 某人訂購大量商品 number = 42949671; 計(jì)算出來的總價(jià)total = -196 沒有限定num 0) int total = num * 100; /計(jì)算總價(jià)格 是cookies過期時(shí)間未設(shè)置,可能會(huì)引發(fā)一些cookies欺騙攻擊 n風(fēng)險(xiǎn)風(fēng)險(xiǎn) 可能會(huì)竊取或操縱客戶會(huì)話和 cookie,它們可能用于模仿合法用戶,從而 使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù) n解決方案解決方案 始終生成新的會(huì)話,供用戶成功認(rèn)證時(shí)登錄。在登錄頁面上加上一段代碼: 在登陸頁面上加的這段代碼的作用就是,將用戶進(jìn)入登陸頁面時(shí)所產(chǎn)生的會(huì)話 ( se
24、ssion) 清空,然后讓跟蹤這個(gè)會(huì)話的cookie過期,這樣服務(wù)器就不再掌握有關(guān)這 個(gè)會(huì)話的任何信息了。要想與服務(wù)器繼續(xù)通信,就要產(chǎn)生一個(gè)新的會(huì)話才行。于是 會(huì)話標(biāo)示就更新了,假如晚上登錄被盜cookie,但是黑客在睡覺第二天醒來失效了 會(huì)話標(biāo)識(shí)未更新會(huì)話標(biāo)識(shí)未更新 注:注:如果是jsp+servlet,這段代碼放jsp頁面程序的任何位置都可以。 如果是struts框架框架,這幾行代碼只能加到j(luò)sp頁面程序的最后面頁面程序的最后面。因?yàn)閟truts框架在初 始化時(shí)會(huì)創(chuàng)建session對(duì)象,并把一些參數(shù)放在session里,然后再執(zhí)行頁面代碼。 request.getSession().inv
25、alidate();/清空session if (request.getCookies()!=null) Cookie cookie = request.getCookies()0;/ 獲取cookie cookie.setMaxAge(0);/ 讓cookie過期 目錄目錄 location.href=$ctx/admin/login/logout.jsp; /如果禁用了客戶端的腳本代碼,直接訪問后臺(tái)頁面,不會(huì)被跳轉(zhuǎn) 到登陸頁面,可以看到后臺(tái)所有內(nèi)容。 提示:不能用JS代碼來完成某些必須要執(zhí)行的信息。得用服務(wù)端腳 本語言如上面可以用response.sendRedirect() 變量注冊順序
26、:Php168 CMS文件包含漏洞 . elseif(ereg(-_0-9a-zA-Z+)$,$_GETjob)|ereg(-_0-9a-zA- Z+)$,$_POSTjob) require(dirname(_FILE_)./.global.php); if(is_file(PHP168_PATH.inc/job/$job.php) include(PHP168_PATH.inc/job/$job.php); 如果開了全局的話,就可以用gpc的變量注冊順序來pass那個(gè) 正則判斷 參考:http:/ Json hijacking/Json劫持漏洞 JSON(JavaScript Object
27、 Notation) 是一種輕量級(jí)的數(shù)據(jù)交換 格式。易于人閱讀和編寫。同時(shí)也易于機(jī)器解析和生成。JSON采用 完全獨(dú)立于語言的文本格式,也使用了類似于C語言家族的習(xí)慣(包 括C, C+, C#, Java, JavaScript, Perl, Python等)。這些特性使 JSON成為理想的數(shù)據(jù)交換語言。這種純文本的數(shù)據(jù)交互方式由于可 以天然的在瀏覽器中使用,所以隨著ajax和web業(yè)務(wù)的發(fā)展得到了廣 大的發(fā)展,各種大型網(wǎng)站都開始使用。 但是如果這種交互的方式用來傳遞敏感的數(shù)據(jù),并且傳輸?shù)臅r(shí) 候沒有做太多安全性控制的話將導(dǎo)致安全漏洞,根據(jù)敏感信息的不 同導(dǎo)致會(huì)導(dǎo)致應(yīng)用遭受不同級(jí)別的攻擊。 Js
28、on hijacking/Json劫持漏洞:示例 n某省運(yùn)營商網(wǎng)上營業(yè)廳修改任意手機(jī)號(hào)密碼漏洞 http:/ onParam=%22dynamicURI%22%3A%22%2FmmxgBusiness% 22%2C%22dynamicParameter%22%3A%22method%22%3A% 22modifyPwd%22%2C%22busiNum%22%3A%22MMFW_MMC Z%22%2C%22mobile%22%3A%2213951909864%22%2C%22n ewPwd%22%3A%22987321%22%2C%22checkOld%22%3A%22 0%22%2C%22ca
29、rdNum%22%3A%22%22%2C%22dynamicDat aNodeName%22%3A%22mmczBusinessNode%22 劫持危害劫持危害 n以上方法在本地?cái)r截并更改了提交出去的以上方法在本地?cái)r截并更改了提交出去的 手機(jī)號(hào)碼,就能造成越權(quán)查看別人手機(jī)號(hào)手機(jī)號(hào)碼,就能造成越權(quán)查看別人手機(jī)號(hào) 的持有人姓名,賬單,余額等,一些網(wǎng)銀的持有人姓名,賬單,余額等,一些網(wǎng)銀 系統(tǒng)甚至可以轉(zhuǎn)賬。系統(tǒng)甚至可以轉(zhuǎn)賬。 n還有一種常見的危害,比如商城購物,比還有一種常見的危害,比如商城購物,比 如積分兌換的地方,標(biāo)價(jià)如積分兌換的地方,標(biāo)價(jià)2000積分兌換一積分兌換一 個(gè)手電筒,你本地篡改為個(gè)手
30、電筒,你本地篡改為1個(gè)積分再次提交個(gè)積分再次提交 出去,就能造成出去,就能造成1積分成功購買了手電筒。積分成功購買了手電筒。 flash安全策略 flash作為一款瀏覽器的第三方插件,是對(duì)瀏覽器功能的延伸,已經(jīng) 是web必不可少的元素。很多web系統(tǒng)因?yàn)闃I(yè)務(wù)應(yīng)用的需求,允許用戶上 傳flash文件。 flash在頁面展示時(shí)含有的豐富功能, 同時(shí)對(duì)安全策略帶來了挑戰(zhàn), 其潛在危險(xiǎn)甚至超過js flash的跨域策略crossdomain.xml 利用利用flash進(jìn)行攻擊進(jìn)行攻擊 參考:http:/ 拖動(dòng)前拖動(dòng)前 拖動(dòng)后拖動(dòng)后 這個(gè)DEMO的思想是:在小球的上面加入隱藏層,在海豚的嘴上方加入隱 藏
31、層。本質(zhì)上就是誘惑 用戶把中的內(nèi)容拖放到中去。 當(dāng)操作成功后,會(huì)把你拖動(dòng)的數(shù)據(jù)打印在頁面上。如果你愿意,只要再加幾行代碼, 數(shù)據(jù)就可以保存在服務(wù)器上了。細(xì)心的朋友可以看看源代碼,里面的操作我都寫成 了獨(dú)立的函數(shù),應(yīng)該很好理解。 容錯(cuò)處理不當(dāng) public static void main(String args) try catch (Exception e) e.printStackTrace(); /直接將錯(cuò)誤返回到客戶端,造成系統(tǒng)信息泄露(如:網(wǎng)站絕對(duì)路徑, SQL語句) 平臺(tái)安全特性 nIIS文件名解析漏洞文件名解析漏洞 nApache文件名解析漏洞文件名解析漏洞 nNginx文件名解
32、析漏洞文件名解析漏洞 nStruts2框架任意代碼執(zhí)行框架任意代碼執(zhí)行 文件名解析漏洞 nIIS6文件夾解析漏洞文件夾解析漏洞 /test.asp/111.jpg(忽略忽略/后的部分后的部分) nIIS6文件名解析漏洞文件名解析漏洞 /test.asp;1.jpg (忽略忽略;后的部分后的部分) nApache文件名解析漏洞文件名解析漏洞 /test.php.xxx (忽略忽略.后的部分后的部分) nNginx cgi模式文件名解析漏洞模式文件名解析漏洞 /test.jpg/a.php 注:攻擊者在在/test.jpg后加上后加上a.php就可以實(shí)現(xiàn)讓 nginx以php來解析任何類型的文件了
33、。 Struts2框架任意代碼執(zhí)行框架任意代碼執(zhí)行 n示例示例 http:/mydomain/MyStruts.action?(u0023_memberAccessallowStaticMethodAccess)(meh)=tr uew.write(request.getParameter(c);w.cl ose();u0025u003e)=1 OGNL訪問對(duì)象需要加#號(hào)前綴進(jìn)行標(biāo)記(根對(duì)象除外) 參數(shù)過濾器不允許參數(shù)名中出現(xiàn)“#”字符,但如果使用了Java的 unicode字符串表示u0023,攻擊者就可以繞過保護(hù),修改保護(hù)Java方 式執(zhí)行的值 (詳見: http:/ 注意框架的補(bǔ)丁注意框
34、架的補(bǔ)丁 n因此應(yīng)謹(jǐn)慎使用第三方的因此應(yīng)謹(jǐn)慎使用第三方的MVC框架,及時(shí)框架,及時(shí) 更新其補(bǔ)丁更新其補(bǔ)丁 nStruts2 ,CakePHP,thinkPHP等框架都存等框架都存 在嚴(yán)重的命令執(zhí)行漏洞在嚴(yán)重的命令執(zhí)行漏洞 目錄目錄 /線上、本地、220測試機(jī) if (!(referrer.startsWith(3) return false; return true; 頁面HTML源代碼中會(huì)出現(xiàn)頁面注釋內(nèi)容泄漏,包括開 發(fā)人員名稱、郵件地址等,所以在頁面中針對(duì)此類注釋不應(yīng)該 使用顯式注釋方式,多采用隱式注釋方式。 以下是顯式注釋:以下是顯式注釋: 以下是隱式
35、注釋:以下是隱式注釋: 頁面注釋修改頁面注釋修改 為防止用戶退出后,點(diǎn)擊瀏覽器的“后退”按鈕仍可以顯示用戶 退出前訪問的最后一個(gè)頁面,需要強(qiáng)制所有頁面不緩存。 建議在web管理后臺(tái)程序管理后臺(tái)程序的過濾器里增加如下代碼: 禁止頁面緩存禁止頁面緩存 /只是請求或響應(yīng)消息不緩存 response.setHeader(Cache-Control, no-cache); /在請求消息中發(fā)送將使得請求和響應(yīng)消息都不使用緩存 response.setHeader(Cache-Control, no-store); /緩存距離過期的時(shí)間為0毫秒,即緩存立即過期 response.setDateHeader(
36、Expires, 0); /頁面不緩存 response.setHeader(Pragma, no-cache); PreparedStatement,通過預(yù)編譯并存儲(chǔ)在PreparedStatement 對(duì)象池中。下面實(shí)例代碼是采用預(yù)編譯語句的查詢的SQL實(shí)現(xiàn), 請參考: 隱患代碼隱患代碼 Sql=“select * from t_sys_user where username=”+變量1+” and password=”+變量2+” 安全代碼安全代碼 采用預(yù)編譯語句的采用預(yù)編譯語句的SQL實(shí)現(xiàn)實(shí)現(xiàn) StringBuffer sbSql = new StringBuffer(50); sbS
37、ql.append(“select 字段1,字段2,字段3”); sbSql.append(“ from t_sys_user”); sbSql.append(“ where username = ? “); sbSql.append(“ and password = ? “); Connection conn = 獲取數(shù)據(jù)庫連接 PreparedStatement pstmt = conn.prepareStatement(sbSql.toString(); int parIndex=1; pstmt.setString(parIndex+,變量1); pstmt.setString(par
38、Index+,變量2); ResultSet rs = pstmt.executeQuery(); 網(wǎng)站存在上傳文件的功能,惡意用戶可以繞過客戶端頁面 的驗(yàn)證,模擬請求上傳文件處理服務(wù)端,將一些可運(yùn)行頁面(例 如:jsp、php、asp等)上傳到服務(wù)端,訪問該頁面會(huì)對(duì)網(wǎng)站安全 造成很大影響。 解決該漏洞步驟如下: 1.客戶端對(duì)上傳文件類型做校驗(yàn)。 2.上傳處理服務(wù)端對(duì)文件類型進(jìn)行二次校驗(yàn)。 3.文件上傳到服務(wù)器之后,如果是屬于臨時(shí)文件,則在業(yè)務(wù)邏輯 處理完成之后,將該原始文件刪除。 注:注:還有其他文件上傳方式(比如彩信彩信的上行jsp附件,就最好 不放到web路徑下) 文件文件上傳上傳校驗(yàn)校
39、驗(yàn) 目錄目錄 & 引言引言 & 高危漏洞分析與對(duì)策高危漏洞分析與對(duì)策 & 程序開發(fā)安全措施程序開發(fā)安全措施 & 平臺(tái)部署與維護(hù)措施平臺(tái)部署與維護(hù)措施 uWEB應(yīng)用服務(wù)器配置 uWEB應(yīng)用配置403、404、500通用處理頁面 u權(quán)限管理 & 程序安全開發(fā)流程程序安全開發(fā)流程 nTomcatTomcat 線上tomcat禁用自帶的管理應(yīng)用以及示例應(yīng)用 配置tomcat禁止列表顯示文件。 Tomcat不以ROOT/system運(yùn)行。 tomcat下禁止不安全的http方法(DELETE、PUT、 OPTIONS、TRACE、HEAD等協(xié)議) nApacheApache 配置非超級(jí)用戶不能修改應(yīng)用目
40、錄內(nèi)容。 配置禁止apache目錄訪問顯示文件 增強(qiáng)apache日志記錄,對(duì)運(yùn)行錯(cuò)誤、用戶訪問等日志都記 錄。 禁止不安全的HTTP方法 WEB應(yīng)用服務(wù)器配置應(yīng)用服務(wù)器配置 應(yīng)用常見403、404、500等訪問異常,需要配置各自獨(dú)立 重定向頁面。 在應(yīng)用web.xml中增加以下內(nèi)容配置,各個(gè)異常顯示頁面 需要單獨(dú)制作。 WEB應(yīng)用配置應(yīng)用配置403、404、500通用處理頁面通用處理頁面 403 /error/403.html 404 /error/404.html 500 /error/500.html n上傳文件目錄的權(quán)限原則:上傳文件目錄的權(quán)限原則: 權(quán)限最小化原則;權(quán)限最小化原則; 能
41、寫入的目錄不能執(zhí)行,能執(zhí)行的目錄不能寫入能寫入的目錄不能執(zhí)行,能執(zhí)行的目錄不能寫入 n數(shù)據(jù)庫帳號(hào)權(quán)限原則:數(shù)據(jù)庫帳號(hào)權(quán)限原則: 權(quán)限最小化原則;不要給應(yīng)用權(quán)限最小化原則;不要給應(yīng)用dba等數(shù)據(jù)庫管理權(quán)限等數(shù)據(jù)庫管理權(quán)限 不要分配不要分配跨庫權(quán)限跨庫權(quán)限。 數(shù)據(jù)庫連接的配置文件中關(guān)鍵信息要加密數(shù)據(jù)庫連接的配置文件中關(guān)鍵信息要加密 權(quán)限管理權(quán)限管理 目錄目錄 & 概述概述 & WEBWEB代碼常見的安全問題代碼常見的安全問題 u SQL注入 u 跨站腳本漏洞(XSS) u 跨站點(diǎn)請求偽造(CSRF) u & 程序開發(fā)安全具體措施程序開發(fā)安全具體措施 & 平臺(tái)部署與維護(hù)具體措施平臺(tái)部署與維護(hù)具體措施
42、 & 程序安全開發(fā)流程程序安全開發(fā)流程 業(yè)界思路 開始 獲取和開 發(fā) 執(zhí)行 操作與維 護(hù) 發(fā)布階部 署段 培訓(xùn)需求 設(shè)計(jì)實(shí)施測試發(fā)布響應(yīng) 主流廠商和組織通過安全開發(fā)生命周期改進(jìn) 微軟 SDL 設(shè)計(jì)驗(yàn)證滲透測 試 安全開發(fā)流程 安全開發(fā)工具 安全開 發(fā) 安全需求 威脅建模 安全設(shè) 計(jì) CSDL OWASP TOP 10 通過評(píng)估風(fēng)險(xiǎn)改進(jìn) 推薦安全的開發(fā)模式推薦安全的開發(fā)模式 需求需求設(shè)計(jì)設(shè)計(jì)實(shí)施實(shí)施測試測試 發(fā)布和發(fā)布和 響應(yīng)響應(yīng) 安全需求 分析 攻擊面分析 威脅建模 安全設(shè)計(jì)原 則 靜態(tài)分析 Fuzzing 測試 基線檢測 滲透測試 應(yīng)急響應(yīng) 系統(tǒng)監(jiān)控 開發(fā)安全規(guī) 范 培訓(xùn)與教育 安全設(shè)計(jì)方
43、案 如果數(shù)據(jù)在傳如果數(shù)據(jù)在傳 輸過程中沒有輸過程中沒有 加密,就有可加密,就有可 能被截獲、篡能被截獲、篡 改改 需求需求 采用采用HTTPS 對(duì)通信數(shù)據(jù)進(jìn)對(duì)通信數(shù)據(jù)進(jìn) 行加密,以保行加密,以保 障數(shù)據(jù)的保密障數(shù)據(jù)的保密 性性 設(shè)計(jì)設(shè)計(jì) 避免使用特定避免使用特定 的危險(xiǎn)的危險(xiǎn)API如如 strcpy, sprintf, 避免緩沖區(qū)溢避免緩沖區(qū)溢 出漏洞出漏洞 實(shí)施實(shí)施 通過動(dòng)態(tài)構(gòu)建通過動(dòng)態(tài)構(gòu)建 SQL語句以證語句以證 明對(duì)用戶輸入明對(duì)用戶輸入 進(jìn)行了過濾以進(jìn)行了過濾以 避免了避免了SQL注注 入攻擊入攻擊 測試測試 入侵者通過入侵者通過 JSP程序提交程序提交 上傳了頁面文上傳了頁面文 件,清
44、除木馬件,清除木馬 程序并提供整程序并提供整 改建議改建議 應(yīng)急應(yīng)急 安全編程規(guī)范安全技術(shù)講解安全測試原理持續(xù)安全學(xué)習(xí) SSDLC 需求分析需求分析 設(shè)計(jì)設(shè)計(jì) 實(shí)現(xiàn)實(shí)現(xiàn)測試測試 安全需求工程 設(shè)計(jì)安全 發(fā)布發(fā)布 安全編碼 補(bǔ)丁管理 配置加固 軟件黑盒測試 滲透性測試 代碼安全審計(jì) 安全軟件開發(fā)生命周期依然是Web安全的基石。 編碼階段:輸入過濾、輸入編碼、 輸出過濾、輸出編碼 測試階段:代碼審計(jì)、XSS測試等, 可手工也可以結(jié)合自動(dòng)工具 部署階段:IDS/IPS、Web應(yīng)用防 火墻、客戶端瀏覽器安全加固 SSDLC過程簡介 n安全需求階段: 分析系統(tǒng)面向的環(huán)境,需求和安全成本,定義自身業(yè)務(wù)系統(tǒng)
45、或產(chǎn)品的安全功能 n安全設(shè)計(jì): 通過威脅建模,找到攻擊界面,分析和歸類安全威脅,漏洞形式,針對(duì)安全需求 ,提出緩解和降低安全威脅的措施,同時(shí)定義強(qiáng)制的安全策略:包括最小攻擊界 面,默認(rèn)配置打開功能和特權(quán)等。 n安全實(shí)現(xiàn): 通過編程規(guī)約和培訓(xùn)開發(fā)人員,配合源代碼審計(jì)工具,保證代碼都是以良好的安 全習(xí)慣得以實(shí)施,減少安全問題。 n安全驗(yàn)證: 通過安全測試,確保安全需求定義的安全功能,安全設(shè)計(jì)中定義的安全策略和威 脅緩解措施都得以實(shí)現(xiàn)。同時(shí)通過測試盡量找出實(shí)現(xiàn)中可定性的安全漏洞(攻擊 點(diǎn)),提供給開發(fā)團(tuán)隊(duì)修復(fù),最大的避免產(chǎn)品發(fā)布后的0DAY帶來的安全損失。 n安全發(fā)布階段: 指導(dǎo)用戶安全部署,提供應(yīng)
46、急響應(yīng)計(jì)劃,實(shí)施最終安全復(fù)查 安全需求安全需求需求描述需求描述實(shí)現(xiàn)階段實(shí)現(xiàn)階段 身份驗(yàn)證身份驗(yàn)證 啟用身份認(rèn)證功能、口令策略、賬號(hào)鎖定、驗(yàn)證碼等功能 在設(shè)計(jì)階段提出身份驗(yàn)證的要求,在測試階段完成有效性驗(yàn) 證 會(huì)話管理會(huì)話管理 嚴(yán)格會(huì)話管理,確保會(huì)話的安全性、唯一性、完整性 在設(shè)計(jì)階段提出會(huì)話管理的開發(fā)要求,在測試階段對(duì)會(huì)話管 理的可用性進(jìn)行測試。 訪問控制訪問控制 程序設(shè)計(jì)時(shí),需要限制對(duì)連接數(shù)、內(nèi)存、文件等資源的訪問 設(shè)計(jì)階段提出訪問控制的開發(fā)要求,在測試階段對(duì)可用性等 進(jìn)行有效性測試。 權(quán)限管理權(quán)限管理 應(yīng)用程序需具備賬號(hào)管理功能,不同賬號(hào)、不同角色具備不 同權(quán)限 在設(shè)計(jì)階段提出權(quán)限管理的開
47、發(fā)要求,在測試階段驗(yàn)證授權(quán) 管理的有效性。 數(shù)據(jù)保護(hù)數(shù)據(jù)保護(hù) 敏感信息、配置文件等重要信息的保存、通信。 在設(shè)計(jì)階段提出數(shù)據(jù)存儲(chǔ)與傳輸?shù)拈_發(fā)要求,在測試階段驗(yàn) 證授權(quán)管理的有效性。 安全審計(jì)安全審計(jì) 應(yīng)用程序需支持記錄程序啟動(dòng)、關(guān)閉事件、應(yīng)用程序訪問事 件、程序出錯(cuò)事件等。 設(shè)計(jì)階段提出日志記錄的開發(fā)要求,測試階段完成日志審計(jì) 有效性、完整性測試。 輸入驗(yàn)證輸入驗(yàn)證 對(duì)客戶端提交的輸入,后臺(tái)程序進(jìn)行嚴(yán)格的檢查。實(shí)現(xiàn)階段提出具體要求。 輸出處理輸出處理 應(yīng)用程序需要限制輸出的內(nèi)容,特別是敏感信息、錯(cuò)誤信息、 用戶輸入的內(nèi)容。 實(shí)現(xiàn)階段提出具體要求。 白盒測試、黑白盒測試、黑 盒測試盒測試 需要檢
48、查應(yīng)用程序開發(fā)的過程中,特意留下可繞過系統(tǒng)安全 控制的功能或超級(jí)口令; 測試階段提出具體要求。 內(nèi)存管理內(nèi)存管理 程序需具有內(nèi)存管理和控制的功能,限制惡意的使用。實(shí)現(xiàn)階段提出具體要求。 異常處理異常處理 程序在出現(xiàn)異常時(shí),應(yīng)具有避免信息泄露的措施。實(shí)現(xiàn)階段完成異常管理的要求。 在開發(fā)時(shí)就應(yīng)考慮到安全功能安全模塊在開發(fā)時(shí)就應(yīng)考慮到安全功能安全模塊 用戶身份認(rèn)證的強(qiáng)度設(shè)計(jì)用戶身份認(rèn)證的強(qiáng)度設(shè)計(jì) 對(duì)高價(jià)值交易和進(jìn)入保護(hù)區(qū)域的用戶需要進(jìn)行對(duì)高價(jià)值交易和進(jìn)入保護(hù)區(qū)域的用戶需要進(jìn)行 重新認(rèn)證重新認(rèn)證 認(rèn)證失敗后的處理方式設(shè)計(jì)認(rèn)證失敗后的處理方式設(shè)計(jì) 使用強(qiáng)口令策略使用強(qiáng)口令策略 使用圖片驗(yàn)證碼使用圖片驗(yàn)證
49、碼 敏感信息加密處理敏感信息加密處理 安全設(shè)計(jì)階段:身份認(rèn)證的設(shè)計(jì)安全設(shè)計(jì)階段:身份認(rèn)證的設(shè)計(jì) 安全設(shè)計(jì)階段:安全設(shè)計(jì)階段:身份認(rèn)證缺陷導(dǎo)致手機(jī)密碼被破解身份認(rèn)證缺陷導(dǎo)致手機(jī)密碼被破解 限制普通用戶對(duì)資源的訪問;限制普通用戶對(duì)資源的訪問; 應(yīng)用軟件啟動(dòng)權(quán)限最小化應(yīng)用軟件啟動(dòng)權(quán)限最小化 敏感功能敏感功能IP地址控制地址控制 盡量采用統(tǒng)一的訪問控制機(jī)制盡量采用統(tǒng)一的訪問控制機(jī)制 資源請求數(shù)量限制資源請求數(shù)量限制 在服務(wù)器端實(shí)現(xiàn)訪問控制在服務(wù)器端實(shí)現(xiàn)訪問控制 安全設(shè)計(jì)階段:訪問控制設(shè)計(jì)安全設(shè)計(jì)階段:訪問控制設(shè)計(jì) 安全設(shè)計(jì)階段:資源限制訪問安全設(shè)計(jì)階段:資源限制訪問 限制會(huì)話壽命限制會(huì)話壽命 確保會(huì)話
50、的安全創(chuàng)建確保會(huì)話的安全創(chuàng)建 確保會(huì)話數(shù)據(jù)的存儲(chǔ)安全確保會(huì)話數(shù)據(jù)的存儲(chǔ)安全 確保會(huì)話的安全終止確保會(huì)話的安全終止 WEB頁面應(yīng)避免跨站請求偽造頁面應(yīng)避免跨站請求偽造 WEB系統(tǒng)確保會(huì)話憑證的安全系統(tǒng)確保會(huì)話憑證的安全 安全設(shè)計(jì)階段:會(huì)話管理設(shè)計(jì)安全設(shè)計(jì)階段:會(huì)話管理設(shè)計(jì) 盡量避免明文存儲(chǔ)機(jī)密信息盡量避免明文存儲(chǔ)機(jī)密信息 避免在代碼中存儲(chǔ)機(jī)密信息避免在代碼中存儲(chǔ)機(jī)密信息 WEB系統(tǒng),不要在永久性系統(tǒng),不要在永久性 cookie 中存儲(chǔ)敏感數(shù)據(jù)中存儲(chǔ)敏感數(shù)據(jù) WEB系統(tǒng),不要使用系統(tǒng),不要使用 HTTP-GET 協(xié)議傳遞敏感數(shù)據(jù)協(xié)議傳遞敏感數(shù)據(jù) 避免在配置文件中明文存儲(chǔ)數(shù)據(jù)庫連接、口令或密鑰避免在
51、配置文件中明文存儲(chǔ)數(shù)據(jù)庫連接、口令或密鑰 確保通信通道的安全確保通信通道的安全 禁止自創(chuàng)加密算法禁止自創(chuàng)加密算法 安全設(shè)計(jì)階段:數(shù)據(jù)存儲(chǔ)與傳輸?shù)脑O(shè)計(jì)安全設(shè)計(jì)階段:數(shù)據(jù)存儲(chǔ)與傳輸?shù)脑O(shè)計(jì) n審計(jì)日志應(yīng)包含時(shí)間、內(nèi)容、來源等關(guān)鍵要素審計(jì)日志應(yīng)包含時(shí)間、內(nèi)容、來源等關(guān)鍵要素 n審計(jì)日志應(yīng)禁止包含用戶口令等隱私信息審計(jì)日志應(yīng)禁止包含用戶口令等隱私信息 限制對(duì)日志數(shù)據(jù)的訪問。應(yīng)將有權(quán)操作日志數(shù)據(jù)的個(gè)人數(shù)量減到最 小。只為高度信任的帳戶(如管理員)授予訪問權(quán)限。 支持定期備份和日志數(shù)據(jù)的分析 n確保日志數(shù)據(jù)的安全確保日志數(shù)據(jù)的安全 日志文件禁止存放在WEB網(wǎng)頁目錄下,防止客戶端能夠訪問到日 志 根據(jù)業(yè)務(wù)平臺(tái)
52、的重要性,設(shè)定日志存儲(chǔ)保留的時(shí)間。 n防止業(yè)務(wù)日志欺騙防止業(yè)務(wù)日志欺騙 安全設(shè)計(jì)階段:日志設(shè)計(jì)安全設(shè)計(jì)階段:日志設(shè)計(jì) n對(duì)所有的輸入進(jìn)行安全驗(yàn)證對(duì)所有的輸入進(jìn)行安全驗(yàn)證 p要對(duì)所有來源不在可信任范圍之內(nèi)的輸入進(jìn)行驗(yàn)證,包括來自于用戶、服務(wù)、共享文件、用戶和數(shù)據(jù)庫的輸入。 p對(duì)WEB系統(tǒng),需要驗(yàn)證HTTP請求消息的全部字段,例如:GET數(shù)據(jù)和POST數(shù)據(jù),COOKIE和Header數(shù)據(jù)等。 p驗(yàn)證除數(shù)據(jù)內(nèi)容外,需限定數(shù)據(jù)的大小或長度。 p驗(yàn)證所有輸出到客戶端的內(nèi)容,輸出數(shù)據(jù)HTML編碼. n盡量采用集中驗(yàn)證方法盡量采用集中驗(yàn)證方法 p如條件允許,將輸入驗(yàn)證策略作為應(yīng)用程序設(shè)計(jì)的核心元素,并采用集
53、中式驗(yàn)證方法,例如,可通過使用共享庫中的公 共驗(yàn)證模塊。這可確保驗(yàn)證規(guī)則的一致性。此外還能減少開發(fā)的工作量,且有助于后期的維護(hù)工作。 p對(duì)于WEB應(yīng)用,需要編寫統(tǒng)一的對(duì)于客戶端提交數(shù)據(jù)的驗(yàn)證接口,集中處理輸入數(shù)據(jù)。 n應(yīng)采用嚴(yán)格的輸入驗(yàn)證的方法:應(yīng)采用嚴(yán)格的輸入驗(yàn)證的方法: p驗(yàn)證數(shù)據(jù)類型,例如預(yù)期輸入類型為整數(shù),則需要禁止輸入英文字符串。 p驗(yàn)證數(shù)據(jù)長度是否在預(yù)期長度范圍內(nèi)。 p驗(yàn)證數(shù)值類型是否在預(yù)期大小邊界內(nèi)。 p對(duì)WEB應(yīng)用,檢查數(shù)據(jù)是否包含特殊字符,如:、 、 、%、 (、)、 &、+、等。 p盡量使用白名單進(jìn)行輸入檢查。 n需在服務(wù)器端進(jìn)行驗(yàn)證需在服務(wù)器端進(jìn)行驗(yàn)證 客戶端腳本可以被篡
54、改,如果為了顧全體驗(yàn),部分重要數(shù)據(jù)一定要用服務(wù)器驗(yàn)證。 n注意規(guī)范化問題注意規(guī)范化問題 n確保用戶沒有繞過檢查確保用戶沒有繞過檢查 安全實(shí)現(xiàn)階段:輸入驗(yàn)證安全實(shí)現(xiàn)階段:輸入驗(yàn)證 安全實(shí)現(xiàn)階段:減少不必要輸入點(diǎn)安全實(shí)現(xiàn)階段:減少不必要輸入點(diǎn) 安全實(shí)現(xiàn)階段:可以任意輸入積分安全實(shí)現(xiàn)階段:可以任意輸入積分 安全實(shí)現(xiàn)階段:積分驗(yàn)證不允分安全實(shí)現(xiàn)階段:積分驗(yàn)證不允分 安全實(shí)現(xiàn)階段:積分驗(yàn)證不允分安全實(shí)現(xiàn)階段:積分驗(yàn)證不允分 n最小化數(shù)據(jù)庫賬號(hào)權(quán)限最小化數(shù)據(jù)庫賬號(hào)權(quán)限 p應(yīng)用軟件使用的數(shù)據(jù)庫賬號(hào)必須是普通權(quán)限帳戶,且只能訪問允許的數(shù)據(jù)庫; n嚴(yán)格控制對(duì)數(shù)據(jù)庫的查詢等操作嚴(yán)格控制對(duì)數(shù)據(jù)庫的查詢等操作 p應(yīng)使用支持嚴(yán)格數(shù)據(jù)類型驗(yàn)證的參數(shù)化查詢方式(如prepareStatement),使查詢和數(shù) 據(jù)分離。或者,對(duì)數(shù)據(jù)庫SQL語句中的來自于不可信任范圍內(nèi)的輸入?yún)?shù)進(jìn)行驗(yàn)證。 n驗(yàn)證數(shù)據(jù)庫返回的數(shù)據(jù)驗(yàn)證數(shù)據(jù)庫返回的數(shù)據(jù) p要求對(duì)來自數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行驗(yàn)證,確保其格式正確且能夠安全的使用,不能盲目的信 賴數(shù)據(jù)庫。 n確保釋放數(shù)據(jù)庫資源。確保釋放數(shù)據(jù)庫資源。 安全實(shí)現(xiàn)階段:訪問數(shù)據(jù)庫安全實(shí)現(xiàn)階段:訪問數(shù)據(jù)庫 n限制文件上傳限制文件上傳 盡量不向
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 1997年注冊會(huì)計(jì)師考試試題及答案
- 2025年幼兒園墻面壁紙采購合同范本2篇
- 2025年度體育賽事贊助合作合同樣本3篇
- 2024茶葉電商平臺(tái)銷售協(xié)議范本版B版
- 2024毛石擋墻光伏支架安裝施工合同模板下載3篇
- 2024首付分期付款合同協(xié)議書范本
- 2025年度便利店品牌獨(dú)家承包合作協(xié)議書3篇
- 2025年城市綠地系統(tǒng)規(guī)劃與測繪合同范本3篇
- 2025年度建筑原材料采購合同與訂單履行約定3篇
- 2024鎳礦行業(yè)風(fēng)險(xiǎn)評(píng)估與內(nèi)部控制合同3篇
- 纜機(jī)安裝方案課件
- 小學(xué)開展“鑄牢中華民族共同體意識(shí)”主題系列活動(dòng)總結(jié)
- 會(huì)展旅游實(shí)務(wù)全套教學(xué)課件
- 非標(biāo)設(shè)計(jì)最強(qiáng)自動(dòng)計(jì)算-分割器計(jì)算
- 第五單元整體教學(xué)設(shè)計(jì)-統(tǒng)編版高中語文必修下冊
- 小班音樂教案:小瓢蟲飛教案及反思
- 危險(xiǎn)化學(xué)品經(jīng)營企業(yè)安全評(píng)價(jià)細(xì)則
- 盲眼鐘表匠:生命自然選擇的秘密
- 雷達(dá)的分類及雷達(dá)信號(hào)處理詳解
- 焊接檢驗(yàn)作業(yè)指導(dǎo)書
- 警務(wù)航空無人機(jī)考試題庫及答案
評(píng)論
0/150
提交評(píng)論