1. 程式人生 > >Web安全實踐

Web安全實踐

5. 網站安全實踐

搜尋引擎(黑語法)
inurl:login.php
intitle:登入
intext:登入

5.1 XSS 攻擊(cross site scripting)

XSS攻擊全稱跨站指令碼攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站指令碼攻擊縮寫為XSS。

XSS是一種在web應用中的電腦保安漏洞,它允許惡意web使用者將程式碼植入到提供給其它使用者使用的頁面中。

如何避免XSS攻擊

  • 嘗試使用盡可能多的插值表示式{{}},它們是字串化的,不能由瀏覽器執行。
  • 確保伺服器資料已經被清理過。
    sanitize

5.2 CSRF 攻擊(cross site request forgy)

wiki跨站請求偽造

刷帖指令碼

5.3 點選劫持問題

點選劫持 (Clickjacking) 技術又稱為介面偽裝攻擊 (UI redress attack ),是一種視覺上的欺騙手段。

攻擊者使用一個或多個透明的 iframe 覆蓋在一個正常的網頁上,然後誘使使用者在該網頁上進行操作,當用戶在不知情的情況下點選透明的 iframe 頁面時,使用者的操作已經被劫持到攻擊者事先設計好的惡意按鈕或連結上。攻擊者既可以通過點選劫持設計一個獨立的惡意網站,執行釣魚攻擊等;也可以與 XSS 和 CSRF 攻擊相結合,突破傳統的防禦措施,提升漏洞的危害程度。

拓展

  • SQL注入
  • DNS 劫持
  • HTTP 劫持
  • 檔案上傳漏洞
  • 目錄遍歷漏洞

1.DNS 劫持,也叫做域名劫持,

可以這麼理解,「你打了一輛車想去商場吃飯,結果你打的車是小作坊派來的,直接給你拉到小作坊去了」

如果當用戶通過某一個域名訪問一個站點的時候,被篡改的 DNS 伺服器返回的是一個惡意的釣魚站點的 IP,使用者就被劫持到了惡意釣魚站點,然後繼而會被釣魚輸入各種賬號密碼資訊,洩漏隱私。

2.HTTP 劫持

您可以這麼理解,「你打了一輛車想去商場吃飯,結果司機跟你一路給你遞小作坊的廣告」

HTTP 劫持主要是當用戶訪問某個站點的時候會經過運營商網路,而不法運營商和黑產勾結能夠截獲 HTTP 請求返回內容,並且能夠篡改內容,然後再返回給使用者,從而實現劫持頁面,輕則插入小廣告,重則直接篡改成釣魚網站頁面騙使用者隱私。能夠實施流量劫持的根本原因,是 HTTP 協議沒有辦法對通訊對方的身份進行校驗以及對資料完整性進行校驗。如果能解決這個問題,則流量劫持將無法輕易發生。所以防止 HTTP 劫持的方法只有將內容加密,讓劫持者無法破解篡改,這樣就可以防止 HTTP 劫持了。

3.檔案上傳漏洞

原理:由於檔案上傳功能實現程式碼沒有嚴格限制使用者上傳的檔案字尾以及檔案型別,導致允許攻擊者向某個可通過 Web 訪問的目錄上傳任意PHP檔案,並能夠將這些檔案傳遞給 PHP 直譯器,就可以在遠端伺服器上執行任意PHP指令碼。

5.3 參考文章

我是如何一步步攻破一家網際網路公司的 推薦
Web安全 MDN 推薦
XSS in vue.js
web安全之點選劫持攻擊與防禦
web安全攻防總結
騰訊WebTest web安全知多少
WLGF,網路攻防小組