雖然互聯網通過多年的發展,但是網站使用的底層協議還是 HTTP,HTTP 做爲一種明文傳播協議,全部的傳輸數據都是明文,咱們都知道在通訊中使用明文(不加密) 內容可能會被竊聽,同時網站存在被劫持的風險。數據庫
上篇《網站莫名跳轉,從百度談什麼是網站劫持?》中咱們講到了搜索引擎劫持、網絡劫持、瀏覽器劫持、路由器劫持等常見的網站劫持,面對多種方式的網站劫持,咱們應該如何應對?瀏覽器
部分網站遭遇劫持主要因爲非法服務器獲取了 Web 網站文件及文件夾的讀寫權限,針對這個問題,咱們能夠利用服務器的安全設置、提升網站程序的安全性,以此防範 Web 劫持。緩存
提高網站 防 SQL 注入功能
SQL 注入經過利用 SQL 語言的特性,向 Web 數據庫寫入內容,獲取權限,所以咱們須要針對MS SQL Server 數據庫中的小權限 sa 默認用戶,創建一個只能訪問本系統數據庫的專注用戶,而且爲他配置最小權限。安全
配置 Web 站點文件夾及其操做權限
使用 Windows 系統中的超級管理員權限對 Web 站點文件和文件夾進行權限配置。將大部分人的權限配置爲僅讀權限,黑客在沒有寫權限的狀況下,很難將木馬程序植入,減小網站域名劫持的可能性。服務器
按期清理 Web 網點中存在的可疑文件
無論黑客經過何種方式獲取權限,在事件管理器中都會顯示出異常狀況,經過對異常事件和日期的分析,查看執行代碼文件中是否被人注入代碼或改動,而且對新增可執行代碼進行清理。網絡
讓用戶繞過運營商 local DNS,使用 114 DNS(國內最大的中立緩存 DNS),這種在技術實現上有比較大的難度,成本也比較高。在如今的狀況下即便用戶使用公共 DNS,也並不能徹底解決問題。先不論公共 DNS 是否也有在作劫持,最關鍵的是,運營商也會專門針對到公共 DNS 的流量作劫持。對於流量入口的把控,運營商不會放鬆警戒。
HttpDNS,防止 DNS 劫持
在移動客戶端中加入一個域名解析模塊,客戶端經過 HTTP 的方式向網站的流量調度服務器請求 IP,流量調度服務器會根據用戶所在位置給用戶一個最優的IP。客戶端在獲取IP後直接用此IP來訪問所需站點資源。網站
網站自身使用 HttpDNS 面臨較高的成本,而經過又拍雲提供的 HttpDNS 調度功能,能夠最低成本的方式,有效防止 DNS 劫持。
△ HttpDNS 訪問原理圖
HTTPS 防劫持
因爲公共 DNS、HttpDNS 的部署成本太高,有必定的技術難度,而且在面對無孔不入的 DNS 劫持時不免會力有不逮。這時候網站開啓 HTTPS 做爲防流量劫持手段之一能夠高效的解決這些問題。目前絕大部分網站也都已經啓用 HTTPS 來加密。HTTPS 協議就是HTTP+SSL/TLS,在 HTTP 的基礎上加入 SSL /TLS 層,提供了內容加密、身份認證和數據完整性三大功能,最終目的就是爲了加密數據,用於安全的數據傳輸。搜索引擎
△ HTTP 請求
△ HTTPS 請求
SSL 協議在 HTTP 請求中增長了握手階段,而且對明文 HTTP 請求、應答進行加密。SSL 握手階段,客戶端瀏覽器會進行服務器身份認證,確認客戶端證書證書屬於該目標網站而且證書本書有效的時候,而且通訊雙方還會共同使用一個加密和解密的會話密鑰。加密
在 SSL 握手階段結束以後,服務端和客戶端經過會話密鑰對交互數據進行加密/解密操做,將 HTTP 請求和應答通過加密以後纔會發送到發送到網絡上。spa
經過 SSL 協議對 Web 服務器的身份認證,使流量劫持致使的鏈接錯誤服務器狀況被發現和終止,保證劫持沒法實現。同時 HTTPS 在數據傳輸中對數據進行加密傳輸,保護數據不被竊取以及修改。
如何快速啓用 HTTPS
鑑於啓用 HTTPS 會帶來必定的服務器資源消耗,目前大多數公司廣泛的選擇是直接使用國內的 CDN 服務,好比又拍雲提供一站式 HTTPS 服務,簡單幾步就能完成全站 HTTPS 的部署,光是免費類證書就有2款,而付費證書在 3-5 天內便可完成申購。另一種能夠直接在 Web 服務器上部署證書和私鑰,能夠去網上查看教程。
面對 Web 流量劫持,首先咱們能夠在網站層面限制讀寫權限,限制惡意代碼的寫入,其次能夠經過公有 DNS 和 HttpDNS 來防止惡意 DNS 劫持。全站開啓 HTTPS,加密數據傳輸,能夠有效防止數據泄漏,同時解決流量劫持的問題。
傳送門:免費 SSL 證書申請入口
推薦閱讀:
HTTPS系列乾貨 ( 一):HTTPS 原理詳解
HTTPS系列乾貨(二):突破這5個技術難點,HTTPS會好用到飛起來