摘要:偏巧的是重定向的過程會給黑客提供中間人攻擊。在上例的情況下,從發送頭部到得到響應,有效性可保持年。它認為這個頭部可以預防偽造跨站請求。總結使用以上頭部可幫你快速容易地預防攻擊點擊挾持攻擊嗅探和中間人攻擊。請確保用戶的安全性。
它曾是世界性圖書館夢的開始,現在它是全球知識的聚集地,它是目前最流行的,人們將應用都部署之上的萬維網。
它是敏捷的代表,它不是單一的實體,它由客戶端和服務端組成,它的功能在不斷地強大,它還有標準。
雖然越來越多的解決方案非常適用于發現什么可行,什么不可行,但它幾乎沒有一致性,沒有易于應用的編程模型。俗話說的好:事情越簡單,越安全。簡單的事物很難有像XSS,CSRF或點擊挾持的漏洞。
由于HTTP是一個可擴展的協議,各瀏覽器廠商都率先推出了有效的頭部,來阻止漏洞利用或提高利用漏洞的難度。了解它們是什么,掌握如何應用,可以提高系統的安全性。
1. Content-Security-Policy怎么才能盡可能不遭受XSS攻擊呢?如果有人在你的服務器上寫了如下代碼瀏覽器可能不去解析?,
下面是內容安全規范中的說明。
添加內容安全規范頭部并賦以適當的值,可以限制下面屬性的來源:
script-src: JavaScript code (biggest reason to use this header)
connect-src: XMLHttpRequest, WebSockets, and EventSource.
font-src: fonts
frame-src: frame ulrs
img-src: images
media-src: audio & video
object-src: Flash (and other plugins)
style-src: CSS
需要特別指定的:
Content-Security-Policy: script-src "self" https://apis.google.com
這就意味著腳本文件只能來自當前文件或apis.google.com(谷歌的JavaScript CDN)
另一個有用的特性就是你可以自動應用 沙盒模式 于整個站點。如果你想試一試效果,你可以用“Content-Security-Policy-Report-Only”頭部運行一下,讓瀏覽器返回一個你選的URL。推薦閱讀一下HTML5Rocks上的一篇CSP的介紹。
有什么收獲?遺憾的是IE還是只支持沙盒模式,并且用的是“X”前綴。安安卓它支持最新的4.4版。
當然,它也不是萬能的,如果你動態的產生一個JavaScript,黑客還是能把惡意JS植入你的服務器中。包含它不會產生危害,在Chrome、 Firefox 和 iOS都能保護用戶。
支持哪些瀏覽器?
Unnamed QQ Screenshot20140225201216
在哪還能學到更多它的知識呢?
HTML5Rocks 有不錯的關于它的介紹。W3C 規范也是個不錯的選擇。
2. X-Frame-Options它能阻止點擊挾持攻擊,只需一句:
X-Frame-Options: DENY
這可使瀏覽器拒絕請求該頁的數據。 它的值還有“SAMEORIGIN”,可允許同一源的數據。以及“ALLOW FROM http://url-here.example.com”,它可設置源(IE不支持)。
一些廠商不支持這個頭部,它可能會被整合到Content-Security-Policy 1.1。但到目前,沒人給出足夠的理由說不能使用它。
IE | Firefox | Chrome | iOS Safari | Android Browser |
---|---|---|---|---|
8+ | 3.6.9+ | 4.1.249+ | ? | ? |
(數據來源 Mozilla Developer Network)
沒有多少要學,想了解更多,可訪問 Mozilla Developer Network 上關于此問題的文章。Coding Horror 上也有比較不錯的文章。
3. X-Content-Type-Options讓用戶上傳文件具有危險性,服務上傳的文件危險更大,而且很難獲得權限。
瀏覽器進行二次猜測服務的Content-Type并不容易,即使內容是通過MIME嗅探獲取的。
X-Content-Type-Options頭允許你更有效的告知瀏覽器你知道你在做什么,當它的值為“nosniff”是才表明Content-Type是正確的。
GitHub 上應用了這一頭部,你也可以試試。
雖然這取決于你用戶,他們占你正保護的訪客的65%,但這個頭部只在IE和Chrome中有用。
IE | Firefox | Chrome | iOS Safari | Android Browser |
---|---|---|---|---|
8+ | - (bug 471020) | 1+ | - | - |
FOX IT上有一篇關于MIME嗅探的優秀文章:MIME 嗅探: 特性還是漏洞? IT Security Stackexchange上也有個專題:X-Content-Type-Options真能防止內容嗅探攻擊嗎?
4. Strict-Transport-Security我的在線銀行使用的是HTTPS來保證真實性(我確實連接到了自己的銀行)及安全性(傳輸過程進行加密)的。然而,這還是有問題的…
當我在地址欄中輸入”onlinebanking.example.com”時,默認使用的是簡單的HTTP。只有當服務器重定向到用戶時,才使用能提供安全的HTTPS(理論上并不安全,但實際上很好用)。偏巧的是重定向的過程會給黑客提供中間人攻擊。為了解決這一問題,Strict-Transport-Security頭部應運而生。
HTTP的Strict-Transport-Security(HSTS)頭部強制瀏覽器使用HTTPS在指定的時候。比如說,如果你進入 https://hsts.example.com,它會返回這樣的頭部:
Strict-Transport-Security: max-age=31536000; includeSubDomains
即使敲入http://hsts.example.com,瀏覽器也會自動變成https://hsts.example.com. 只要HSTS頭部一直有效,瀏覽器就會默認這么做。在上例的情況下,從發送頭部到得到響應,有效性可保持1年。所以,如果我2013年1月1日訪問了某網站,知道2014年1月1日,瀏覽器都會使用HTTPS。但如果我2013年12月31日又訪問了一次,那有效期也會變成2014年12月31日。
有什么收獲?目前它僅適用于Chrome和Firefox,IE用戶依然存在此漏洞。然而它已經成為了IETF的標準,所以說接下IE應該盡快地也使用Strict-Transport-Security頭部。
當然如果使用了HTTPS,就可不必使用此頭部了,所以說為什么不用HTTPS呢?切記HTTPS不僅能保證你的內容被加密、不被攔截,還能提供真實性。向用戶承諾內容的確來自你。
使用HTTPS還存在著不同的爭論,事實上,博客和這個頭部都不是基于HTTPS的,所以爭論還會持續很久。
哪些瀏覽器支持?在哪還能學到更多它的知識呢?
Mozilla Developer Network上有一篇不錯的文章:HTTP的 Strict Transport Security頭部
了解更多 Symfony2可以看Nelmio安全包,而 Drupal 在安全組件模塊有詳細說明。閱讀它們可以使你更了解上述介紹的頭部。
默認情況下jQuery 發送X-Requested-With頭。它認為這個頭部可以預防偽造跨站請求。然而這個頭部不會產生請求,一個用戶會話可由第三方發起,比如在瀏覽器中XMLHttpRequest就可以自定義頭部。
不幸的是,Ruby On Rails 的Ruby框架和Django Python框架的快速創建,雖然這能成為很好的防御手段,但它可以不完全依賴于像Java或Adobe Flash第三方插件了。
總結使用以上HTTP頭部可幫你快速容易地預防XSS攻擊、點擊挾持攻擊、MIME嗅探和中間人攻擊。如果目前還沒使用,通過介紹給你,你可以在你的應用或服務器上使用。
請確保用戶的安全性。
原文:4 HTTP SECURITY HEADERS YOU SHOULD ALWAYS BE USING
轉載自: 伯樂在線 - smilesisi
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11106.html
摘要:同源策略指的是當前頁面和目標協議域名和端口均相同。發出請求的頁面所在域。響應的頭部信息在后端處理,不在此處講解。該事件會在數據接收期間不斷觸發,但間隔不確定。服務器確認允許之后,才發起實際的請求。 ajax作為前端開發必需的基礎能力之一,你可能會使用它,但并不一定懂得其原理,以及更深入的服務器通信相關的知識。在最近兩天的整理過程中,看了大量的文章,發現自己的后端能力已經限制自己在網絡通...
摘要:通用頭部這也是開發人員見過的最多的信息,包括如下請求的服務器地址請求方式請求的返回狀態碼,如代表成功請求的遠程服務器地址會轉為譬如,在跨域拒絕時,可能是為,狀態碼為等當然,實際上可能的組合有很多。 面試中經常會被問到這個問題吧,唉,我最開始被問到的時候也就能大概說一些流程。被問得多了,自己就想去找找這個問題的全面回答,于是乎搜了很多資料和網上的文章,根據那些文章寫一個總結。 寫得不好...
摘要:通用頭部這也是開發人員見過的最多的信息,包括如下請求的服務器地址請求方式請求的返回狀態碼,如代表成功請求的遠程服務器地址會轉為譬如,在跨域拒絕時,可能是為,狀態碼為等當然,實際上可能的組合有很多。 面試中經常會被問到這個問題吧,唉,我最開始被問到的時候也就能大概說一些流程。被問得多了,自己就想去找找這個問題的全面回答,于是乎搜了很多資料和網上的文章,根據那些文章寫一個總結。 寫得不好...
摘要:通用頭部這也是開發人員見過的最多的信息,包括如下請求的服務器地址請求方式請求的返回狀態碼,如代表成功請求的遠程服務器地址會轉為譬如,在跨域拒絕時,可能是為,狀態碼為等當然,實際上可能的組合有很多。 面試中經常會被問到這個問題吧,唉,我最開始被問到的時候也就能大概說一些流程。被問得多了,自己就想去找找這個問題的全面回答,于是乎搜了很多資料和網上的文章,根據那些文章寫一個總結。 寫得不好...
摘要:前言見解有限,如有描述不當之處,請幫忙指出,如有錯誤,會及時修正。為什么要梳理這篇文章最近恰好被問到這方面的問題,嘗試整理后發現,這道題的覆蓋面可以非常廣,很適合作為一道承載知識體系的題目。 前言 見解有限,如有描述不當之處,請幫忙指出,如有錯誤,會及時修正。 為什么要梳理這篇文章? 最近恰好被問到這方面的問題,嘗試整理后發現,這道題的覆蓋面可以非常廣,很適合作為一道承載知識體系的題目...
閱讀 867·2021-10-25 09:45
閱讀 3284·2021-09-22 14:58
閱讀 3844·2021-08-31 09:43
閱讀 914·2019-08-30 15:55
閱讀 917·2019-08-29 13:51
閱讀 1225·2019-08-29 13:02
閱讀 3483·2019-08-29 12:52
閱讀 1961·2019-08-26 13:27