天天看點

安全

1.視訊教程:

B站、網易雲課堂、騰訊課堂

2.代碼位址:

Gitee

Github

3.存儲位址:

Google雲

百度雲:

提取碼:

1.CSRF攻擊介紹和原理分析

2.攻擊案例-ICBC項目結構搭建

3.攻擊案例-ICBC網站登入、注冊、轉賬功能實作

4.攻擊案例-裝飾器和中間件優化ICBC網站

5.攻擊案例-病毒網站實作隐藏轉賬

6.攻擊案例-CSRF防禦原理和解決方案

7.Ajax處理CSRF防禦

8.XSS攻擊原理.

9.XSS攻擊防禦-普通字元串處理

10.XSS攻擊防禦-富文本字元串處理

11.點選劫持攻擊實作和防禦措施

12.SQL注入的實作和防禦措施

CSRF攻擊概述:

CSRF(Cross Site Request Forgery, 跨站域請求僞造)是一種網絡的攻擊方式,它在 2007 年曾被列為網際網路 20 大安全隐患之一。其他安全隐患,比如 SQL 腳本注入,跨站域腳本攻擊等在近年來已經逐漸為衆人熟知,很多網站也都針對他們進行了防禦。然而,對于大多數人來說,CSRF卻依然是一個陌生的概念。即便是大名鼎鼎的 Gmail, 在 2007 年底也存在着 CSRF 漏洞,進而被黑客攻擊而使 Gmail 的使用者造成巨大的損失。

CSRF攻擊原理:

網站是通過 cookie 來實作登入功能的。而 cookie 隻要存在浏覽器中,那麼浏覽器在通路這個 cookie 的伺服器的時候,就會自動的攜帶 cookie 資訊到伺服器上去。那麼這時候就存在一個漏洞了,如果你通路了一個别有用心或病毒網站,這個網站可以在網頁源代碼中插入js代碼,使用js代碼給其他伺服器發送請求(比如ICBC的轉賬請求)。那麼因為在發送請求的時候,浏覽器會自動的把 cookie 發送給對應的伺服器,這時候相應的伺服器(比如ICBC網站),就不知道這個請求是僞造的,就被欺騙過去了。進而達到在使用者不知情的情況下,給某個伺服器發送了一個請求(比如轉賬)。

防禦CSRF攻擊:

CSRF攻擊的要點就是在向伺服器發送請求的時候,相應的 cookie 會自動的發送給對應的伺服器。造成伺服器不知道這個請求是使用者發起的還是僞造的。這時候,我們可以在使用者每次通路有表單的頁面的時候,在網頁源代碼中加一個随機的字元串叫做csrf_token ,在 cookie 中也加入一個相同值的 csrf_token 字元串。以後給伺服器發送請求的時候,必須在 body 中以及 cookie 中都攜帶 csrf_token ,伺服器隻有檢測到 cookie 中的 csrf_token 和 body 中的 csrf_token 都相同,才認為這個請求是正常的,否則就是僞造的。那麼黑客就沒辦法僞造請求了。在 Django 中,如果想要防禦 CSRF 攻擊,應該做兩步工作。第一個是在 settings.MIDDLEWARE 中添加 CsrfMiddleware 中間件。第二個是在模版代碼中添加一個 input 标簽,加載 csrf_token 。示

例代碼如下:

XSS攻擊

XSS(Cross Site Script)攻擊又叫做跨站腳本攻擊。他的原理是使用者在使用具有 XSS 漏洞的網站的時候,向這個網站送出一些惡意的代碼,當使用者在通路這個網站的某個頁面的時候,這個惡意的代碼就會被執行,進而來破壞網頁的結構,擷取使用者的隐私資訊等。

XSS攻擊場景:

比如 A網站 有一個釋出文章的入口,如果使用者在送出資料的時候,送出了一段 js 代碼比如: <code>&lt;script&gt;alert("hello world");&lt;/script&gt;</code> ,然後 A網站 在渲染這個文章的時候,直接把這個代碼渲染了,那麼這個代碼就會執行,會在浏覽器的視窗中彈出一個模态對話框來顯示 helloworld !如果攻擊者能成功的運作以上這麼一段 js 代碼,那他能做的事情就有很多很多了!

SQL注入

所謂SQL注入,就是通過把SQL指令插入到表單中或頁面請求的查詢字元串中,最終達到欺騙伺服器執行惡意的SQL指令。具體來說,它是利用現有應用程式,将(惡意的)SQL指令注入到背景資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL語句。 比如先前的很多影視網站洩露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的。