面試--web安全的理解

web前端安全主要會涉及如下幾種

xssjavascript

xss cross-site scripting跨域腳本攻擊

它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。其實在web前端方面,能夠簡單的理解爲一種javascript代碼注入。php

XSS攻擊分爲三種,分別是:html

  1. Reflected XSS(基於反射的XSS攻擊)
  2. Stored XSS(基於存儲的XSS攻擊)
  3. DOM-based or local XSS(基於DOM或本地的XSS攻擊)

Reflected XSS(基於反射的XSS攻擊)

這種攻擊主要依靠 站點服務端 返回腳本,在客戶端 觸發執行 從而發起Web攻擊。
攻擊的例子
一、當你在亞馬遜 搜索圖書的時候 搜不到書的時候顯示提交的名稱
二、在搜索框搜索內容,填入「<script>alert('handsome boy')</script>」, 點擊搜索
三、若是前端頁面沒有對 返回的數據進行處理 就會直接彈出alert
也就是直接執行了用戶在搜索框裏邊的腳本
四、 進而能夠構造獲取用戶cookies的地址,經過QQ羣或者垃圾郵件,
防護這種攻擊的兩種方法:
一、前端頁面顯示服務器端返回來的數據的時候 不只是標籤內容須要過濾、轉義,就連屬性值也均可能須要。讓服
務器返回來的非法js腳本 沒有辦法到達前端的瀏覽器
二、後端接收請求時,驗證請求是否爲攻擊請求,攻擊則屏蔽。前端

Stored XSS(基於存儲的XSS攻擊)

這種攻擊常見於論壇中 好比說有一我的發表了一篇文章爲java

今每天氣不錯啊!<script>alert('handsome boy')</script>

後端沒有對文章進行過濾,直接保存文章內容到數據庫。每個讀這篇文章的人都會 被彈出alert
防護這種攻擊的兩種方法:
一、服務器在存儲文章的時候對文章的內容要進行過濾。web

  1. 當服務端不校驗時候,前端要以各類方式過濾裏面可能的惡意腳本,例如script標籤,將特殊字符轉換成HTML編碼。
    XSS攻擊的特色就是:盡一切辦法在目標網站上執行非目標網站上原有的腳本(某篇文章說的)。本地的XSS攻擊的示例2其實不算XSS攻擊,只是簡單流量劫持。前兩種XSS攻擊是咱們開發時候要注意的,而流量劫持的則可使用HTTPS提升安全性,。

一、避免使用eval New Function等執行字符串的方法 除非肯定這個字符串和用戶的輸入沒有關係
二、過濾前端的輸入和輸出
三、使用cookie的httpOnly屬性 加上這個屬性的cookie字段 js是沒法讀取的
四、使用innerHTML document.wirte的數據的時候 若是數據是用戶輸入的時候 須要對關鍵字進行過濾與轉移數據庫

cors Cross-site request forgery跨站請求僞造

網站的一些提交行爲被黑客利用 在你訪問黑客網站的時候進行的操做的時候 會被操做到其餘網站
你在開發一個購買商品的操做
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上攜帶的信息,要謹慎使用。心中時刻記着,本身的網站哪裏可能有危險。

相關文章
相關標籤/搜索