xssjavascript
它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。其實在web前端方面,能夠簡單的理解爲一種javascript代碼注入。php
XSS攻擊分爲三種,分別是:html
這種攻擊主要依靠 站點服務端 返回腳本,在客戶端 觸發執行 從而發起Web攻擊。
攻擊的例子
一、當你在亞馬遜 搜索圖書的時候 搜不到書的時候顯示提交的名稱
二、在搜索框搜索內容,填入「<script>alert('handsome boy')</script>」, 點擊搜索
三、若是前端頁面沒有對 返回的數據進行處理 就會直接彈出alert
也就是直接執行了用戶在搜索框裏邊的腳本
四、 進而能夠構造獲取用戶cookies的地址,經過QQ羣或者垃圾郵件,
防護這種攻擊的兩種方法:
一、前端頁面顯示服務器端返回來的數據的時候 不只是標籤內容須要過濾、轉義,就連屬性值也均可能須要。讓服
務器返回來的非法js腳本 沒有辦法到達前端的瀏覽器
二、後端接收請求時,驗證請求是否爲攻擊請求,攻擊則屏蔽。前端
這種攻擊常見於論壇中 好比說有一我的發表了一篇文章爲java
今每天氣不錯啊!<script>alert('handsome boy')</script>
後端沒有對文章進行過濾,直接保存文章內容到數據庫。每個讀這篇文章的人都會 被彈出alert
防護這種攻擊的兩種方法:
一、服務器在存儲文章的時候對文章的內容要進行過濾。web
一、避免使用eval New Function等執行字符串的方法 除非肯定這個字符串和用戶的輸入沒有關係
二、過濾前端的輸入和輸出
三、使用cookie的httpOnly屬性 加上這個屬性的cookie字段 js是沒法讀取的
四、使用innerHTML document.wirte的數據的時候 若是數據是用戶輸入的時候 須要對關鍵字進行過濾與轉移數據庫
網站的一些提交行爲被黑客利用 在你訪問黑客網站的時候進行的操做的時候 會被操做到其餘網站
你在開發一個購買商品的操做
http://localhost:8082/lab/xsr...json
<?php // 從cookie中獲取用戶名,看似穩妥 $username = $_COOKIE['username']; $productId = $_GET['pid']; // 這裏進行購買操做 //store_into_database($username, $productId); ?> <meta charset="utf-8" /> <?php echo $username . '買入商品:' . $productId; ?>
黑客網站後端
<!DOCYTPE HTML> <html> <head> <meta charset="utf-8" /> </head> <body> <img src="http://localhost:8082/lab/xsrflab/submit.php?pid=1" /> </body> </html>
當每次有人訪問黑客網站的時候 就至關於給你執行了一次提交
防護corf
一、檢測http referer 是不是同域名
二、避免登陸的session 長時間的存儲在客戶端中
還有其餘的一些攻擊
http劫持 飯店的wifi登陸了之後能夠拿到你的全部的收發的數據 https加密跨域
開發時要提防用戶產生的內容,要對用戶輸入的信息進行層層檢測要注意對用戶的輸出內容進行過濾(進行轉義等)重要的內容記得要加密傳輸(不管是利用https也好,本身加密也好)get請求與post請求,要嚴格遵照規範,不要混用,不要將一些危險的提交使用jsonp完成。對於URL上攜帶的信息,要謹慎使用。心中時刻記着,本身的網站哪裏可能有危險。