日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WEB應(yīng)用安全設(shè)計思想續(xù)

安全問題的討論中,我們已經(jīng)向大家介紹了訪問控制的安全設(shè)計核心和信任關(guān)系的劃分問題,本文將繼續(xù)向大家介紹。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、浦北網(wǎng)絡(luò)推廣、成都微信小程序、浦北網(wǎng)絡(luò)營銷、浦北企業(yè)策劃、浦北品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供浦北建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

數(shù)據(jù)與代碼分離的思想是安全設(shè)計的原則

最典型的體現(xiàn)數(shù)據(jù)與代碼分離思想的是模板系統(tǒng)。

比如velocity,在渲染html的時候,程序員可以寫vm模板,一些靜態(tài)寫死的內(nèi)容就是代碼,而通過變量,經(jīng)過渲染才最終展現(xiàn)的內(nèi)容則稱之為數(shù)據(jù)。一個典型的例子如下:

 
 
 
  1. -code--------------------------------------------

    test
    -------------------------------------------------

代碼與數(shù)據(jù)如果沒有分離,就會導(dǎo)致代碼混亂,數(shù)據(jù)變成代碼的一部分去執(zhí)行。比較常見的例子就是PHP里的SQL寫法:

 
 
 
  1. -code----------------------------------------------------
  2. $sql = "SELECT * FROM article WHERE articleid='".$_GET[id]."'";  
  3. ---------------------------------------------------------  

 

如果參數(shù) id 中帶有單引號,就會閉合掉代碼中的單引號,從而導(dǎo)致數(shù)據(jù)變成代碼執(zhí)行。
所以這個注射的本質(zhì)問題還是沒有做好數(shù)據(jù)與代碼的分離。

比較好的做法是如下java代碼中的使用變量綁定,很好的做到了代碼與數(shù)據(jù)分離

 
 
 
  1. -code----------------------------------------------------  
  2.  
  3. String sql="Insert into table VALUES(?,?)";  
  4. List values = new ArrayList();  
  5. values.add(Integer.toString(id));  
  6. values.add(operator);  
  7. try{  
  8. executeStatement(sql, values);  
  9. result=true;  
  10. }catch(Exception e){  
  11. e.printStackTrace();  
  12. }  
  13. ---------------------------------------------------------  
  14.  

 

但是并不是說使用了模板系統(tǒng)就一定分離了數(shù)據(jù)與代碼。

因為在類似“render”或者是“transform”的過程中,往往存在一個將數(shù)據(jù)進(jìn)行規(guī)范化的過程。這個過程也可能出現(xiàn)問題,從而導(dǎo)致代碼可以混淆數(shù)據(jù)進(jìn)行執(zhí)行。

比較好的做法是,數(shù)據(jù)中不能包含有在代碼中存在語義的字符。

參考如下例子:

 
 
 
  1. -code----------------------------------------------------  
  2. Set-Cookie: name=id\r\nP3P: xxxxxxxxxxxxxx\r\n  
  3. --------------------------------------------------------- 

 

紅字部分是用戶的輸入。

在HTTP的標(biāo)準(zhǔn)中,冒號“:”,等號“=”,換行符CRLF“\r\n”,百分號“%”等字符都是有具體的語義的,屬于代碼部分。所以正常的用戶數(shù)據(jù)中不應(yīng)該包含有這些字符。

如果出于需求一定要包含怎么辦?按照標(biāo)準(zhǔn)將這些字符全部encode。

在HTTP標(biāo)準(zhǔn)中可以使用urlencode,比如等號就變成了“%3d”。

這樣就做到了代碼與數(shù)據(jù)的分離。

代碼與數(shù)據(jù)分離原則的本質(zhì)還是體現(xiàn)了安全問題是信任問題這一思想。

代碼是否應(yīng)該信任數(shù)據(jù),或者說代碼應(yīng)該信任怎樣的數(shù)據(jù),是這個原則的本質(zhì)。

在應(yīng)用中,比較好的例子是json、XSLT,這些方法都比較好的做到了數(shù)據(jù)與代碼分離,所以在開發(fā)中多使用這些比較好的方法,無形中就提高了安全性。

最佳實踐一:Secure By Default

經(jīng)??梢钥吹揭恍?quán)威文檔上推薦使用“default denied”,這就是“Secure By Default”
的一種體現(xiàn)。

“Secure By Default”可以說是一個最佳實踐。在很多時候,這個思想應(yīng)該上升到戰(zhàn)略的高度。只有真正做到“Secure By Default”,才能保證網(wǎng)站的安全。

因為隨著時間的推移和系統(tǒng)的發(fā)展、膨脹,會變得越來越臃腫。一個大系統(tǒng)發(fā)展到后期,基本上沒有一個人能了解系統(tǒng)的全部,而變化卻每天都在發(fā)生。所以,在這種情況下,只有使用“Secure By Default”的思想來制定安全方案。

白名單往往是實現(xiàn)“Secure By Default”的方法。與黑名單不同,白名單的思想很好的體現(xiàn)了“default denied”。下面以XSS的防御問題舉例。

對于一些HTML的標(biāo)簽和事件,黑名單的做法是列出危險的標(biāo)簽和事件,然后禁止他們。

WEB安全的設(shè)計思想就像大家介紹完了,希望大家已經(jīng)掌握了。


分享標(biāo)題:WEB應(yīng)用安全設(shè)計思想續(xù)
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/cdossjg.html