返回首頁
當前位置: 主頁 > 網絡編程 > Asp實例教程 >

如何配置使用HTTP嚴格傳輸安全HSTS

時間:2018-09-21 23:27來源:知行網www.gbjajh.tw 編輯:麥田守望者

HTTP嚴格傳輸安全即HSTS是某種安全功能,HSTS旨在告知用戶使用的瀏覽器與服務器之間僅HTTPS通信。如果網站服務器支持HTTP訪問并將其重定向到HTTPS訪問的話,那么重定向之前的初始化會話是非加密的。這種情況下攻擊者就可以利用中間人攻擊手法進行劫持,讓訪問請求從正常站點跳轉到攻擊者的惡意站點去。而HSTS協議則告知瀏覽器不可以使用HTTP進行連接,在瀏覽器上自動將所有到該站點的HTTP替換HTTPS。

維基百科上對HSTS協議的描述是可以用來抵御 SSL 剝離攻擊,該攻擊由Moxie在2009年黑帽大會上發表的。這種攻擊方式主要利用的就是不少用戶習慣性點擊 HTTP 連接而不會手動把請求的網址改成HTTPS加密連接。因此可以在 HTTP 連接完成前對請求進行阻止,然后將連接重定向到攻擊者偽造的惡意網址上即可竊取數據。

需要注意的是:

在瀏覽器首次訪問網頁之前并不知道服務器是否支持 HSTS 協議,因此網站需要通過HTTPS協議告知瀏覽器。所以在用戶的瀏覽器初次訪問HTTPS站點時即使啟用HSTS協議也不能夠完全杜絕掉SSL剝離這個攻擊手法的。

如何告訴瀏覽器支持HSTS協議:

在服務器中配置HSTS協議并在客戶端發出HTTPS請求時,在HTTP響應頭中包含Strict-Transport-Security。

在Nginx中設置HSTS協議:

編輯網站配置文件然后加入HSTS協議代碼保存,然后重啟Nginx即可開啟HSTS協議。實例如下:

server

    {

        listen 443 ssl http2;

        #listen [::]:443 ssl http2;

        server_name www.landiannews.com landiannews.com;

        #開啟HTTP嚴格傳輸安全HSTS

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

        #開啟HTTP嚴格傳輸安全HSTS

        index index.html index.htm index.php default.html default.htm default.php;

        ssl on;

        ssl_certificate /usr/local/nginx/conf/certificate/www.landiannews.com.crt;

        ssl_certificate_key /usr/local/nginx/conf/certificate/www.landiannews.com.key;

        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;

    }

      #修改完成保存后重啟Nginx

       service nginx restart

在Apache 2中設置HSTS:

在Apache里編輯網站的配置文件例如/etc/apache2/sites-enabled/website.conf等等:

# Optionally load the headers module:

LoadModule headers_module modules/mod_headers.so

<VirtualHost 67.89.123.45:443>

#開啟HTTP嚴格傳輸安全HSTS

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

#開啟HTTP嚴格傳輸安全HSTS

</VirtualHost>

以上內容由 LCTT 編譯并發布在Linux中國,英文原文請點擊這里查看。

------分隔線----------------------------
標簽(Tag):HTTP
------分隔線----------------------------
推薦內容
猜你感興趣
黑龙江快乐十分20190730开奖结果