九江網站建設|網站制作|九江做網站【星辰網絡】做網站全包優化排名

Web應用服務器安全:攻擊、防護與檢測

2020-03-11 11:51


攻擊方式

防護方式

說明

點擊劫持(clickjacking)

X-Frame-Options Header

undefined

基于 SSL 的中間人攻擊(SSL Man-in-the-middle)

HTTP Strict Transport Security

undefined

跨站腳本(Cross-site scripting,XSS)

X-XSS-Protection、Content-Security-Policy、X-Content-Type-Options

undefined

 

點擊劫持(Clickjacking)

 

點擊劫持,clickjacking 是一種在網頁中將惡意代碼等隱藏在看似無害的內容(如按鈕)之下,并誘使用戶點擊的手段,又被稱為界面偽裝(UI redressing)。例如用戶收到一封包含一段視頻的電子郵件,但其中的“播放”按鈕并不會真正播放視頻,而是被誘騙進入一個購物網站。

 

針對點擊劫持攻擊,開放Web應用程序安全項目(Open Web Application Security Project ,OWASP)(非營利組織,其目的是協助個人、企業和機構來發現和使用可信賴軟件) 提供了一份指引,《Defending_with_X-Frame-Options_Response_Headers》 。

 

X-Frame-Options HTTP 響應頭是用來給瀏覽器指示允許一個頁面可否在 frame 標簽 或者 object 標簽中展現的標記。網站可以使用此功能,來確保自己網站的內容沒有被嵌到別人的網站中去,也從而避免了點擊劫持 (clickjacking) 的攻擊。DENY:表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。SAMEORIGIN:表示該頁面可以在相同域名頁面的 frame 中展示。ALLOW-FROM uri:表示該頁面可以在指定來源的 frame 中展示。配置如下:

 

//HAProxy
http-response set-header X-Frame-Options:DENY
//Nginx
add_header X-Frame-Options "DENY";
//Java
response.addHeader("x-frame-options","DENY");

 

跨站腳本 Cross-site scripting (XSS)

 

跨站腳本通常指的是通過利用開發時留下的漏洞,注入惡意指令代碼(JavaScript/Java/VBScript/ActiveX/Flash/HTML等)到網頁,使用戶加載并執行攻擊者惡意制造的程序。攻擊者可能得到更高的權限、私密網頁、會話和cookie等各種內容。目前有兩種不同的 HTTP 響應頭可以用來防止 XSS 攻擊,它們是:

 

  • X-XSS-Protection
  • Content-Security-Policy

X-XSS-Protection

 

HTTP X-XSS-Protection 響應頭是Internet Explorer,Chrome和Safari的一個功能,當檢測到跨站腳本攻擊 (XSS)時,瀏覽器將停止加載頁面。配置選項:0 禁止XSS過濾。1 啟用XSS過濾(通常瀏覽器是默認的)。 如果檢測到跨站腳本攻擊,瀏覽器將清除頁面(刪除不安全的部分)。mode=block 啟用XSS過濾, 如果檢測到攻擊,瀏覽器將不會清除頁面,而是阻止頁面加載。report=reporting-URI 啟用XSS過濾。 如果檢測到跨站腳本攻擊,瀏覽器將清除頁面并使用 CSP report-uri 指令的功能發送違規報告。參考文章《The misunderstood X-XSS-Protection》:

 

//HAProxy
http-response set-header X-XSS-Protection: 1;mode=block
//Nginx
add_header X-Xss-Protection "1; mode=block" always;;

 

瀏覽器支持情況:

 

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

(Yes)

(Yes)

No

8.0

(Yes)

(Yes)

 

Content-Security-Policy

 

內容安全性政策(Content Security Policy,CSP)就是一種白名單制度,明確告訴客戶端哪些外部資源(腳本/圖片/音視頻等)可以加載和執行。瀏覽器可以拒絕任何不來自預定義位置的任何內容,從而防止外部注入的腳本和其他此類惡意內容。設置 Content-Security-Policy Header:

 

//HAProxy:
http-response set-header Content-Security-Policy:script-src https://www.google-analytics.com;https://q.quora.com
//Nginx
add_header Content-Security-Policy-Report-Only "script-src https://www.google-analytics.com https://q.quora.com";

 

MIME-Sniffing

 

MIME-Sniffing(主要是Internet Explorer)使用的一種技術,它嘗試猜測資源的 MIME 類型(也稱為 Content-Type 內容類型)。這意味著瀏覽器可以忽略由 Web 服務器發送的 Content-Type Header,而不是嘗試分析資源(例如將純文本標記為HTML 標簽),按照它認為的資源(HTML)渲染資源而不是服務器的定義(文本)。雖然這是一個非常有用的功能,能夠糾正服務器發送的錯誤的 Content-Type,但是心懷不軌的人可以輕易濫用這一特性,這使得瀏覽器和用戶可能被惡意攻擊。例如,如通過精心制作一個圖像文件,并在其中嵌入可以被瀏覽器所展示和執行的HTML和t代碼。《Microsoft Developer Network:IE8 Security Part V: Comprehensive Protection》

 

Consider, for instance, the case of a picture-sharing web service which hosts pictures uploaded by anonymous users. An attacker could upload a specially crafted JPEG file that contained script content, and then send a link to the file to unsuspecting victims. When the victims visited the server, the malicious file would be downloaded, the script would be detected, and it would run in the context of the picture-sharing site. This script could then steal the victim’s cookies, generate a phony page, etc.

 

//HAProxy
http-response set-header X-Content-Type-Options: nosniff
//Nginx
add_header X-Content-Type-Options "nosniff" always;

 

SSL Strip Man-in-The-Middle Attack

 

中間人攻擊中攻擊者與通訊的兩端分別創建獨立的聯系,并交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。例如,在一個未加密的Wi-Fi 無線接入點的接受范圍內的中間人攻擊者,可以將自己作為一個中間人插入這個網絡。強制用戶使用HTTP嚴格傳輸安全(HTTP Strict Transport Security,HSTS)。 HSTS 是一套由 IETF 發布的互聯網安全策略機制。Chrome 和 Firefox 瀏覽器有一個內置的 HSTS 的主機列表,網站可以選擇使用 HSTS 策略強制瀏覽器使用 HTTPS 協議與網站進行通信,以減少會話劫持風險。

 

服務器設置下列選項可以強制所有客戶端只能通過 HTTPS 連接:

 

//HAProxy
http-response set-header Strict-Transport-Security max-age=31536000;includeSubDomains;preload
//Nginx
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload; always;'

 

暴露 URL (HTTPS > HTTP Sites)

 

Referrer 信息被廣泛用于網絡訪問流量來源分析,它是眾多網站數據統計服務的基礎,例如 Google Analytics 和 AWStats,基于Perl的開源日志分析工具。同樣的這一特性也會很容易被惡意利用,造成用戶敏感信息泄漏,例如將用戶 SESSION ID 放在 URL 中,第三方拿到就可能看到別人登錄后的頁面內容。2014 年,W3C 發布了 Referrer Policy 的新草案,開發者開始有權控制自己網站的 Referrer Policy。但是僅有 Chrome/Firefox 瀏覽器較新的版本的能夠提供支持。

 

Feature

Chrome

Firefox

Edge、Internet Explorer、 Opera、Safari

Basic Support

56.0

50.0

(No)

same-origin

(No)1

52.0

(No)

strict-origin

(No)1

52.0

(No)

strict-origin-when-cross-origin

(No)1

52.0

(No)

 

Referrer-Policy選項列表:

 

  • Referrer-Policy: no-referrer //整個 Referer 首部會被移除。訪問來源信息不隨著請求一起發送。
  • Referrer-Policy: no-referrer-when-downgrade //默認選項 //引用頁面的地址會被發送(HTTPS->HTTPS),降級的情況不會被發送 (HTTPS->HTTP)
  • Referrer-Policy: origin //在任何情況下,僅發送文件的源作為引用地址
  • Referrer-Policy: origin-when-cross-origin //對于同源的請求,會發送完整的URL作為引用地址,但是對于非同源請求僅發送文件的源
  • Referrer-Policy: same-origin //對于同源的請求會發送引用地址,但是對于非同源請求則不發送引用地址信息。
  • Referrer-Policy: strict-origin //在同等安全級別的情況下,發送文件的源作為引用地址(HTTPS->HTTPS)
  • Referrer-Policy: strict-origin-when-cross-origin //對于同源的請求,會發送完整的URL作為引用地址
  • Referrer-Policy: unsafe-url //無論是否同源請求,都發送完整的 URL(移除參數信息之后)作為引用地址。

我們必須確保用戶從全 HTTPS 站點跳轉到 HTTP 站點的時候,沒有中間人可以嗅探出用戶實際的 HTTPS URL,Referrer Policy 設置如下:

 

//HAProxy
http-response set-header Referrer-Policy no-referrer-when-downgrade
//Nginx
add_header Referrer-Policy: no-referrer-when-downgrade

 

Source

Destination

Referrer (Policy :no-referrer-when-downgrade)

https://test.com/blog1/

http://test.com/blog2/

NULL

https://test.com/blog1/

https://test.com/blog2/

https://test.com/blog1/

http://test.com/blog1/

http://test.com/blog2/

http://test.com/blog1/

http://test.com/blog1/

http://example.com

http://test.com/blog1/

http://test.com/blog1/

https://example.com

http://test.com/blog1/

https://test.com/blog1/

http://example.com

NULL

 

測試

 

安全研究員 Scott Helme 貢獻了一個非常棒的網站 https://securityheaders.io/,可以分析自己站點的Header(報文頭),并提出改進安全性的建議。示例如下(環境參數,Operating System: CentOS 7 ; haproxy 1.5.14 ; nginx 1.12.0)。

 

  • 加固前的檢測結果

加固前

  • 加固后的檢測結果

服務支持

我們珍惜您每一次在線詢盤,有問必答,用專業的態度,貼心的服務。

讓您真正感受到我們的與眾不同!

合作流程

網站制作流程從提出需求到網站制作報價,再到網頁制作,每一步都是規范和專業的。

常見問題

提供什么是網站定制?你們的報價如何?等網站建設常見問題。

售后保障

網站制作不難,難的是一如既往的熱情服務及技術支持。我們知道:做網站就是做服務,就是做售后。

王者里面怎么赚钱吗