常見的web安全問題 學習筆記

常見的安全問題

  1. SQL注入
  2. XSS(跨站腳本攻擊,Cross-Site Scripting)
  3. CSRF(跨站請求僞造,Cross-site- request forgery)

SQL注入與防範

  1. 通過構造特殊的輸入參數傳入Web應用,導致後端執行了惡意的SQL
  2. 通常由於程序員未對輸入進行過濾,直接動態拼接SQL產生
  3. 可以使用開源工具sqlmp,SQLninja

防範SQL注入

web安全原則一大原則:永遠不要相信用戶的任何輸入

  1. 對輸入參數做好檢查(類型和範圍);過濾和轉義特殊字符
  2. 不要直接拼接sql,使用ORM可以大大降低sql注入風險
  3. 數據庫底層:做好權限管理配置;不要明文存儲敏感信息

什麼是XSS

  1. 惡意用戶將代碼植入到提供給其他用戶使用的頁面中,未經轉義的惡意代碼輸出到其他用戶的瀏覽器使用
  2. 用戶瀏覽頁面的時候嵌入頁面的腳本(js)就會被執行,攻擊用戶

XSS危害

xss可以利用js實現很多危害巨大的操作

  1. 盜用用戶cookie,獲取用戶敏感信息
  2. 利用用戶私人賬號執行一些違法的操作,比如盜取個人或者商業資料,執行一些隱私操作
  3. 甚至可以在一些訪問量很大的網站上實現DDoS攻擊

防範XSS危害

不要相信用戶的輸入

  1. 過濾(輸入和參數)。對敏感標籤

什麼CRSF

  1. 利用網站已認證的用戶的權限去執行未授權的命令的一種惡意攻擊
  2. 攻擊者會盜用你的登錄信息,以你的身份去模擬發送請求
  3. web身份認證機制只能識別一個請求是否來自某個用戶的瀏覽器,但是無法保證請求是否用戶自己或者批准發送的

CSRF產生條件

  1. 受害者已經登錄到了目標網站並且沒有退出(保持登錄狀態)
  2. 受害者訪問了攻擊者發佈的鏈接或者表單
  3. 二者必須缺一不可

如何防範CSRF

  1. 令牌同步(Synchonizer token pattern,簡稱STP);在用戶請求的表單中嵌入隱藏的csrf_token,服務端驗證其是否與cookie中的一致(基於同源策略其他網站是無法獲取cookie中的csrf_token)
  2. 如果是js提交需要先從cookie獲取csrf_token作爲X-CSRFtoken請求頭提交
  3. 其他:檢測來源HTTP REFER(容易被僞造);驗證碼的方式(安全但是繁瑣)

瀏覽器SameSite機制

SameSite詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章