1、XSS攻擊
XSS攻擊全稱跨站腳本攻擊,一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼(javascript、css、html)植入頁面中,這樣當別人訪問到該頁面時也執行了嵌入的代碼進行一些操作。
1.1、防范XSS攻擊
1、編碼,就是轉義用戶的輸入,把用戶的輸入解讀為數據而不是代碼
2、校驗,對用戶的輸入及請求都進行過濾檢查,如對特殊字符進行過濾,設置輸入域的匹配規則等。
3、使用cookie的HttpOnly屬性,加上了這個屬性的cookie字段,js就無法進行讀寫了。
2、CSRF攻擊
CSRF(跨站請求偽造),是一種對網站的惡意利用。其實就是網站中的一些提交行為,被黑客利用,你在訪問黑客的網站的時候,進行的操作,會被操作到其他網站上(如:你所使用的網絡銀行的網站)。
比如:CSRF攻擊者在用戶已經登錄目標網站之后,誘使用戶訪問一個攻擊頁面,利用目標網站對用戶的信任,以用戶身份在攻擊頁面對目標網站發起偽造用戶操作的請求,達到攻擊目的。比如說你登錄了一個普通網站,然后又打開另一個惡意網站,那個惡意網站就可能會冒充你的身份來進行一些操作。具體例子參考:https://segmentfault.com/a/1190000006672214?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly#articleHeader14、https://www.cnblogs.com/lovesong/p/5233195.html
2.1、防范CSRF攻擊
1、重要數據交互采用POST進行接收,當然是用POST也不是萬能的,偽造一個form表單即可破解
2、使用驗證碼,只要是涉及到數據交互就先進行驗證碼驗證,這個方法可以完全解決CSRF。但是出於用戶體驗考慮,網站不能給所有的操作都加上驗證碼。因此驗證碼只能作為一種輔助手段,不能作為主要解決方案。
3、驗證HTTP Referer字段,該字段記錄了此次HTTP請求的來源地址
4、為每個表單添加令牌token並驗證
3、DNS劫持
DNS劫持又稱域名劫持,是指在劫持的網絡范圍內攔截域名解析的請求,分析請求的域名,只把在要劫持的域名請求名單之外的請求放行,否則返回假的IP地址或者什么都不做使請求失去響應,其效果就是對特定的網絡不能訪問或訪問的是假網址。
很多的時候,我們的網站不是直接就訪問到我們的服務器上的,中間會經過很多層代理。如果在某一個環節,數據被中間代理層的劫持者所截獲,他們就能獲取到使用你網站的用戶的密碼等保密數據。比如說,我們經常會在各種飯館里面連一些wifi,此時WiFi就是中間代理,如果這個wifi是黑客所建立的熱點wifi,那么黑客就可以截獲該用戶收發的所有數據。所以建議網站都使用https進行加密,這樣就算網站的數據能被拿到,黑客也無法解開。
4、SQL注入
SQL 注入攻擊是對WEB服務器進行攻擊,通過往服務器傳一些參數或者數據,而如果服務器是通過傳過來的數據來拼接 SQL 語句的話,就有可能會執行攻擊者發送給服務器的 SQL 語句,由此達到攻擊的目的。簡單的說就是在 post/get 表單、輸入域名或頁面請求的查詢字符串中插入 SQL 命令,最終使web服務器執行惡意 SQL 命令的過程。
4.1、如何防止 SQL 注入攻擊
1)不要使用動態SQL,避免將用戶提供的輸入直接放入SQL語句中
2)限制數據庫權限和特權。將數據庫用戶的功能設置為最低要求,這將限制攻擊者可以執行的操作
3)避免直接向用戶顯示數據庫錯誤,否則攻擊者可以使用這些錯誤消息來獲取有關數據庫的信息
通過SQL注入工具可以了解SQL注入是如何實現的,SQL注入工具可參考:https://blog.csdn.net/qq240263894/article/details/71076575