成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WEB應用安全設計思想 續

安全 應用安全
網絡攻擊是千變萬化的,我們同時提供了相應的防御方案。到底什么特性使得攻擊者的成本升高了,風險降低了。這中間是否有什么共同的東西呢?安全的本質究竟是什么呢?

安全問題的討論中,我們已經向大家介紹了訪問控制的安全設計核心和信任關系的劃分問題,本文將繼續向大家介紹。

數據與代碼分離的思想是安全設計的原則

最典型的體現數據與代碼分離思想的是模板系統。

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

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

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

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

 

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

 

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

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

  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.  

 

但是并不是說使用了模板系統就一定分離了數據與代碼。

因為在類似“render”或者是“transform”的過程中,往往存在一個將數據進行規范化的過程。這個過程也可能出現問題,從而導致代碼可以混淆數據進行執行。

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

參考如下例子:

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

 

紅字部分是用戶的輸入。

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

如果出于需求一定要包含怎么辦?按照標準將這些字符全部encode。

在HTTP標準中可以使用urlencode,比如等號就變成了“%3d”。

這樣就做到了代碼與數據的分離。

代碼與數據分離原則的本質還是體現了安全問題是信任問題這一思想。

代碼是否應該信任數據,或者說代碼應該信任怎樣的數據,是這個原則的本質。

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

最佳實踐一:Secure By Default

經常可以看到一些權威文檔上推薦使用“default denied”,這就是“Secure By Default”
的一種體現。

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

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

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

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

WEB安全的設計思想就像大家介紹完了,希望大家已經掌握了。

【編輯推薦】

  1. Web云安全技術應用
  2. WEB應用安全設計思想
  3. Web安全網關采購指南 注重性能

 

責任編輯:佚名 來源: 服安資訊
相關推薦

2009-07-19 10:32:44

2011-03-11 17:07:16

2012-03-20 10:28:43

2011-03-11 16:43:51

2011-03-25 11:39:29

2009-07-29 17:19:14

2012-10-26 11:37:12

2011-02-15 11:46:41

2011-08-02 11:08:54

2014-02-28 09:49:11

2013-10-10 14:11:30

2012-12-18 17:11:58

2011-07-26 15:30:32

jQuery

2010-08-10 10:10:28

系統架構

2014-10-27 09:51:19

Web設計HTML

2013-03-28 13:08:15

Web緩存

2010-08-30 13:01:00

2019-03-12 18:00:33

httpWeb安全Javascript

2010-11-23 15:42:14

2009-11-25 10:57:17

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一码二码三码在线 | 国产1区2区在线观看 | 久久久久久免费毛片精品 | 成人福利网站 | 91在线视频免费观看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 日韩欧美在线视频 | 丁香综合 | 欧美精品在线一区 | 一级二级三级在线观看 | 欧美日韩视频在线播放 | 日韩一区二区三区av | 日韩三级 | 国产精品久久精品 | 久久精品亚洲 | 特一级毛片 | 日韩电影中文字幕 | 成人三级在线观看 | 狠狠爱免费视频 | 精品国产一级片 | 国产视频久久久 | 欧美午夜剧场 | 欧美精品一区二区免费视频 | 欧美精品久久久久 | 综合二区 | 黄色大片免费网站 | 久久成人在线视频 | 欧美一区视频 | 手机av免费在线 | 久久精品国产久精国产 | 欧美在线看片 | 欧美国产精品一区二区三区 | 国产成人免费视频 | 天天干天天爽 | 天天操天天射天天 | 奇米久久久 | 国产精品色 | 日韩精品激情 | 欧美精品一区二区在线观看 | 丁香久久 | 中文一区 |