中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WEB開發中常見漏洞防御方法是什么

發布時間:2022-01-17 18:30:31 來源:億速云 閱讀:141 作者:柒染 欄目:網絡安全

這篇文章的內容主要圍繞WEB開發中常見漏洞防御方法是什么進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

SQL注入漏洞

  • SQL注入漏洞產生原因及危害

  • 在sql查詢中很多程序員會將變量拼接入sql語句后再進行查詢,這樣如果黑客在參數中插入其他sql語句就可能導致我們網站的密碼被被黑客查詢出來或者被拖取大量數據,如果在開發中使用了字符串拼接進SQL語句就必須進行嚴格的過濾,任何用戶輸入的內容都不可信任,以下列舉幾種防御方法。

數字型查詢注入防護

查詢例子如下

如果是這樣的數字型注入我們可以強制將傳入參數轉換為整數,以剔除黑客拼接的SQL語句。修改如下

這是這個網頁正常查詢的返回的結果。

WEB開發中常見漏洞防御方法是什么

這是一個典型的數字型注入,我們輸入注入語句可見注入成功

WEB開發中常見漏洞防御方法是什么

我們強制轉換類型到代碼中:

WEB開發中常見漏洞防御方法是什么

我們再執行注入可以看到恢復正常查詢,注入失敗。

WEB開發中常見漏洞防御方法是什么

非數字型注入防護-通用防護

如果查詢參數不是數字,那么我們該如何防護呢,那么這里可以使用通用型防護,對數字型和非數字型同樣適用,我們知道web中獲取參數的方式主要有三種分別是get、post、cookie。那么我們防護的主要方面也是這三個方面,我們可以對網站的所有流量進行黑名單過濾。當然這個也可以攔截xss漏洞。具體流程如下:

WEB開發中常見漏洞防御方法是什么

具體實現代碼:

測試

同樣我們在原先的網站上將我們的waf.php文件包含進去,在執行注入操作,可見我們已經將非法操作攔截。

WEB開發中常見漏洞防御方法是什么

WEB開發中常見漏洞防御方法是什么

使用預處理對注入進行防護

PHP預處理查詢的例子

  • 預處理的優點

  • 預處理語句大大減少了分析時間,只做了一次查詢(雖然語句多次執行)。

  • 綁定參數減少了服務器帶寬,你只需要發送查詢的參數,而不是整個語句。

  • 預處理語句針對SQL注入是非常有用的,因為參數值發送后使用不同的協議,保證了數據的合法性。

XSS漏洞的防護

  • xss漏洞產生的原因及危害

  • xss漏洞和sql注入一樣也是注入型漏洞,主要是黑客在網頁中注入惡意的js代碼,可以導致我們的cookie被盜取,黑客通過cookie欺騙就能輕松登陸我們的后臺,黑客也可以利用js進行掛馬、黑帽seo、攻擊客戶計算機等操作危害十分嚴重。那么如何防御呢,我將講解兩種主要防御方法。

  • xss分類

  • xss主要分為反射型,儲存型、和DOM型

轉義 htmlspecialchars()

我們知道在數據庫查詢出來的數據可以打印到網頁上,但是數據可能是用戶在注冊或者輸入其他表單輸入的,那么這里用戶可能輸入的是js或者html代碼,這里就可能導致,用戶輸入的代碼在瀏覽器中被解析并執行,那么我們這就可以通過 htmlspecialchars()將其轉義為不可解析的字符串,從而避免此類攻擊。

這是一個模擬存在xss漏洞的網頁。我們進行模擬攻擊和修復。

我們傳入一個xss攻擊代碼,可見直接獲取了當前網頁的cookie內容

WEB開發中常見漏洞防御方法是什么

那我們在輸出時候給$id加上htmlspecialchars()呢

我們可以明顯看到瀏覽器不再解析我們傳入的js代碼,而是將它當做普通字符串輸出。

WEB開發中常見漏洞防御方法是什么

通用型防護

將我們sql注入的通用型防護waf.php包含到該網頁同樣可以實現過濾。

WEB開發中常見漏洞防御方法是什么

CSRF漏洞的防御

  • CSRF漏洞產生的原因和危害

  • CSRF漏洞主要是我們的網站沒有對表單驗證,這個表單是不是我們網站自己本身提交的,如果有一個改密碼的表單被人構造并放在了其他人的網站上,我們在打開這個黑客精心構造的域外表單時候就導致了我們本身的密碼被修改,黑客也可以通過CSRF漏洞進行蠕蟲式傳播,新浪微博就曾遭遇過此類攻擊,黑客精心構造表單,當你打開這個表單的鏈接時候就會自動發送一條微博,其他人打開同樣進行這樣的操作。

TOKEN防護

我們如何驗證這個表單是不是我們自己網站本身提交的呢,那么我們可以在每個表單下生成一個隱藏的input表單存放一個TOKEN,在進行表單提交時會驗證這TOKEN是否在SESSION上,如果在就執行這個表單的操作,如果TOKEN不在或者根本沒提交TOKEN那么說明表單是偽造的,我們直接截斷操作。具體流程如下:

WEB開發中常見漏洞防御方法是什么

防護代碼編寫:

測試

  • 我們分別寫兩個文件分別是index.php用于提交表單,xss.php用于驗證表單

  • index.php

xss.php

可以看到我們代碼非常簡單,只要我們通過動態的TOKEN驗證,那就會輸出check success,否則輸出NO-TOKEN!

首先我們直接提交表單是沒有問題的直接返回成功

WEB開發中常見漏洞防御方法是什么

但是我們F12將TOKEN值刪除再提交呢?

WEB開發中常見漏洞防御方法是什么

可以看到會直接截斷

WEB開發中常見漏洞防御方法是什么

web防御中的代碼安全:

感謝你的閱讀,相信你對“WEB開發中常見漏洞防御方法是什么”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

炉霍县| 大港区| 诸城市| 临城县| 武乡县| 五台县| 凤凰县| 时尚| 崇义县| 河西区| 长兴县| 甘泉县| 东至县| 永州市| 赞皇县| 阳高县| 二连浩特市| 合川市| 梧州市| 天全县| 荣成市| 天台县| 天镇县| 革吉县| 利川市| 静海县| 南阳市| 响水县| 景泰县| 腾冲县| 岢岚县| 通海县| 静安区| 揭西县| 喀什市| 鄂州市| 安多县| 和林格尔县| 雅江县| 迭部县| 都兰县|