一、SQL注入SQL注入是比較常見的" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > WEB開發(fā)常見的安全漏洞和解決思路

WEB開發(fā)常見的安全漏洞和解決思路

時間:2023-04-18 12:32:02 | 來源:網(wǎng)站運營

時間:2023-04-18 12:32:02 來源:網(wǎng)站運營

WEB開發(fā)常見的安全漏洞和解決思路:隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡安全變得越來越重要。程序員需要掌握基本的web安全知識,防患于未然,下面列舉一些常見的安全漏洞,以及對應的防御解決方案。







一、SQL注入

SQL注入是比較常見的網(wǎng)絡攻擊方式之一,主要是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,實現(xiàn)無帳號登錄,甚至篡改數(shù)據(jù)庫。

1、SQL注入的危害

數(shù)據(jù)庫信息泄漏:數(shù)據(jù)庫中存放的用戶的隱私信息的泄露。

網(wǎng)頁篡改:通過操作數(shù)據(jù)庫對特定網(wǎng)頁進行篡改。

數(shù)據(jù)庫被惡意操作:數(shù)據(jù)庫服務器被攻擊

服務器被遠程控制,被安裝后門

刪除和修改數(shù)據(jù)庫信息

2、SQL注入最常見的方式有:

1)布爾型盲注

在互聯(lián)網(wǎng)剛剛興起的時候,該方法常常會被用來惡意登錄一些安全性不高的網(wǎng)站:

SELECT * FROM users WHERE user_name ='zhangsan' and password ='mima';

如果用戶在密碼框里填入 'or1=1or1=',那么上面的SQL 就變成了

SELECT * FROM users WHERE user_name ='zhangsan' and password ='' or 1 =1 or 1='' ;

這樣就可以繞過密碼校驗,登錄為任意用戶了

2)報錯型注入

一個常見的語句為 :

SELECT * FROM users WHERE id=1 AND user_name ='zhangsan'

通過修改 zhangsan 這個 入?yún)?,很容易將SQL拼接為

SELECT * FROM users WHERE id=1 AND user_name= 'zhangsan' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(USER(),FLOOR(RAND(0)*2))X FROM information_schema.tables GROUP BY X)a) AND 1='1';

這個語句會報一個固定的錯誤







顯然,你用來登錄Mysql的用戶名就暴漏了

3)union注入

這種比較好理解,就是在原來的select 語句上通過union的方式,增加新的信息,將SQL拼接為

SELECT * FROM users WHERE id=1 AND user_name ='zhangsan' union select * from other_table

這種方式可以查詢到你的任意表的信息,嚴重的話可能會被脫庫。

4)SQL堆疊查詢

這種跟 union 類似,可以將SQL拼接為

SELECT * FROM users WHERE id=1 AND user_name ='zhangsan' ; select * from other_table

更為嚴重的是,分號后面的語句時可以隨意寫的,如果時拼上 drop 或者 delete 之類的語句 就可以會造成刪庫的風險了。

SQL注入的攻擊最常見,影響也最大,SQL注入的本質是將 用戶本來應該傳入的 “數(shù)據(jù)” 變成了 程序 會執(zhí)行的“代碼”,從根源上解決這個問題,就是不要讓 數(shù)據(jù)變成代碼,最好的方式就是預編譯了。







3、防止SQL注入的方式

通常情況下,SQL注入的位置包括:

(1)表單提交,主要是POST請求,也包括GET請求;

(2)URL參數(shù)提交,主要為GET請求參數(shù);

(3)Cookie參數(shù)提交;

(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;

SQL注入時web開發(fā)中最常見也是危害性最大的安全漏洞,SQL注入攻擊可能會導致 服務器故障,數(shù)據(jù)泄漏,數(shù)據(jù)被惡意刪除等等嚴重后果。

二、CSRF漏洞

CSRF跨站點請求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,攻擊者盜用了你的身份,以你的身份來調用后臺接口,對服務器來說這個請求是完全合法的,但是實際上,這個接口的調用,你卻并不知情。

簡單模擬一下整個過程如下:

1. 張三打開瀏覽器,訪問受信任網(wǎng)站A,輸入用戶名和密碼請求登錄網(wǎng)站A;網(wǎng)站A 有一個接口為
http://www.a.com/deletedata?id=100 ,那么正常情況下,因為張三已經(jīng)登錄了網(wǎng)站A,那么他是可以直接訪問這個接口的。

2. 張三在同一瀏覽器中,打開一個TAB頁訪問網(wǎng)站B;網(wǎng)站B 上有這么一段代碼 查看 ,這樣的話 如果張三在B網(wǎng)站上點擊了 查看 這個 按鈕,那么實際上 ,他就刪除了 在 A網(wǎng)站上的 數(shù)據(jù)了。

當然例子里是個 deletedata ,而實際上這個接口的含義也可能是查詢了某個數(shù)據(jù),甚至時轉了一筆錢等等,那么影響就非常大了。

要防治CSRF 漏洞,一般有兩種方法:

1.驗證 HTTP Referer 字段

HTTP Referer是header的一部分,當瀏覽器向web服務器發(fā)送請求的時候,一般會帶上Referer,告訴服務器該網(wǎng)頁是從哪個頁面鏈接過來的,服務器因此可以獲得一些信息用于處理,以上示例中,如果A網(wǎng)站做了這個校驗,那么他就可以識別出 deletedata 這個請求時來自于 B網(wǎng)站而不是A網(wǎng)站自身,就可以拒絕掉這個請求了。

這種方式最常見也最簡單,但是卻并不是最安全的,畢竟Referer是依賴瀏覽器的,每個瀏覽器對 Referer的實現(xiàn)可能不一樣,對于部分瀏覽器,Referer 甚至是可以篡改的 。另外,由于網(wǎng)站會記錄 Referer信息 ,在用戶對隱私的問題越來越敏感的今天,可能會帶來隱私風險問題。

2.在請求中增加 token 并驗證;

CSRF攻擊之所以能夠成功,是因為攻擊者可以偽造用戶的請求,是因為黑客利用已知信息以及cookie中的未知信息 來發(fā)起了攻擊,那么,如果我們添加一個不能偽造的并且不在cookie中的未知信息,那么攻擊就無法產生了。因此,我們可以在HTTP請求中以參數(shù)的形式加入一個隨機產生的token,并在服務端進行token校驗,如果沒有token或者token的值不正確,我們就認為這是一個非法的請求,拒絕掉他就可以了。

三、SSRF漏洞

SSRF是一種由攻擊者構造形成由服務端發(fā)起請求的一個安全漏洞。一般情況下,SSRF攻擊的目標是從外網(wǎng)無法訪問的內部系統(tǒng)。因為請求本身是由服務端發(fā)起的,因此可以通過這個請求調用到服務端的一些內部接口,探測內網(wǎng)的信息,攻擊內網(wǎng)的服務等等。

可能會產生SSRF 漏洞的地方主要有:

1.能夠對外發(fā)起網(wǎng)絡請求的地方

2.請求遠程服務器資源的地方

3.一些郵件系統(tǒng),文件上傳,文件處理系統(tǒng),在線處理工具等等

舉一個簡單的示例:

假如 A網(wǎng)站有一個功能,就是用來下載一些第三方的數(shù)據(jù)的,URL 為 http://a.com/downloadurl="http://b.com/b.jpg",

執(zhí)行邏輯上其實就是簡單的 wget -Ob.jpg http://b.com/b.jpg 這樣的。明面上,這個功能很簡單,就是將一些網(wǎng)站 ,比如 http://b.com 上的 圖片給下載下來保存??雌饋頉]啥問題

但是,如果這里的參數(shù)被人利用 改成了 http://a.com/downloadurl="
http://127.0.0.1/deletedata?id=1" ,那么當你執(zhí)行 weget -Ob.jpg 的時候,就等于是執(zhí)行了內部接口 deletedata了,這樣就會對內部系統(tǒng)造成攻擊。更深層次的,如果是用的其他一些協(xié)議,比如 downloadurl 為 file:///etc/passwd ,或者
dict://127.0.0.1:6379/info 之類的,就可以直接拿到服務器上的一些數(shù)據(jù)信息了。

防治SSRF漏洞的思路主要就是禁止對不安全的資源進行下載和訪問:

1.禁用不需要的協(xié)議,僅僅允許http和https請求,并禁止30x跳轉,可以防止類似于file://, gopher://, ftp:// 等引起的問題。

2.服務端的服務都需要做訪問授權,避免root啟動,禁止非正常用戶訪問服務。

3.設置URL白名單,限制內網(wǎng)IP的請求,過濾輸入信息,嚴格判斷輸入的URL是不是安全的URL







四、XSS漏洞

1.XSS簡介

跨站腳本(cross site script)簡稱為XSS,是一種經(jīng)常出現(xiàn)在web應用中的計算機安全漏洞,也是web中最主流的攻擊方式。

XSS是指惡意攻擊者利用網(wǎng)站沒有對用戶提交數(shù)據(jù)進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去,使別的用戶訪問都會執(zhí)行相應的嵌入代碼。

2.XSS攻擊的危害

1、盜取用戶資料,比如:登錄帳號、網(wǎng)銀帳號等

2、利用用戶身份,讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)等

3、盜竊企業(yè)重要的具有商業(yè)價值的資料

4、非法轉賬

5、強制發(fā)送電子郵件

6、網(wǎng)站掛馬

7、控制受害者機器向其它網(wǎng)站發(fā)起攻擊

3.防止XSS解決方案

XSS的根源主要是沒完全過濾客戶端提交的數(shù)據(jù) ,所以重點是要過濾用戶提交的信息。

將重要的cookie標記為http only, 這樣的話js 中的document.cookie語句就不能獲取到cookie了.

只允許用戶輸入我們期望的數(shù)據(jù)。 例如:age用戶年齡只允許用戶輸入數(shù)字,而數(shù)字之外的字符都過濾掉。

對數(shù)據(jù)進行Html Encode 處理: 用戶將數(shù)據(jù)提交上來的時候進行HTML編碼,將相應的符號轉換為實體名稱再進行下一步的處理。

過濾或移除特殊的Html標簽, 例如: <script>, <iframe> , < for <, > for >, &quot for

過濾js事件的標簽。例如 "onclick=", "onfocus" 等等。

五、越權漏洞

越權漏洞也是常見的web漏洞,一般分為分為水平越權和垂直越權兩種,水平越權指的是攻擊者嘗試訪問與他擁有相同權限的用戶的資源,比如A本來是只能看A自己的用資料的,但是當他把URL 為getInfo?id=a 修改為 getInfo?id=b 后 就可以看到b的數(shù)據(jù)了。垂直越權是指普通的用戶獲取到了比他級別更高的用戶的權限,如果普通用戶獲取到了管理員的權限。

1.水平越權

水平越權里,一個最常見的示例就是攻擊者通過遍歷ID 來進行信息的竊取。比如某個頁面如下:

這個頁面在顯示列表時,就通過后臺進行過濾,只顯示了當前登錄者的任務列表

任務名

查看詳情

任務1

getInfo?id=1

任務2

getInfo?id=2

任務3

getInfo?id=3

列表里的數(shù)據(jù),攻擊者時沒法偽造的,但是這里有一個查看詳情的鏈接,如果這個 getInfo 接口本身沒有做好鑒權的話,那么攻擊者就可以通過遍歷ID 的方式來查到到了所有用戶的詳情數(shù)據(jù)了,嚴重的甚至可能會被脫庫。

2.垂直越權

垂直越權的常見例子就是菜單的展示,比如管理員可以看到所有的菜單,包括“系統(tǒng)管理” 這個菜單,而其他用戶是看不到 “系統(tǒng)管理” 這個菜單的,但是,如果某個用戶通過特殊途徑,獲取到“系統(tǒng)管理” 這個菜單的URL ,他直接通過這個URL 來進行訪問,發(fā)現(xiàn)時可以訪問,這個就是產生了垂直越權的漏洞了。

要避免越權漏洞,主要還是需要從邏輯上進行完善,以下有幾點建議:

1.所有的接口都要做到兩層鑒權,包括接口本身的鑒權以及接口對應的數(shù)據(jù)的鑒權

2.鑒權,服務端對請求的數(shù)據(jù)和當前用戶身份做校驗

3.所有的鑒權都要在后臺做,不能依靠前端來鑒權

4.對于會暴漏給用戶的數(shù)據(jù),盡量避免通過自增ID的方式來實現(xiàn),最好有自己的生成器,讓黑客沒法通過遍歷的方式來獲取數(shù)據(jù)

5.對于特別敏感的操作,可以進行二次權限校驗

網(wǎng)絡漏洞掃描器對目標系統(tǒng)進行漏洞檢測時,首先探測目標系統(tǒng)的存活主機,對存活主機進行端口掃描,確定系統(tǒng)聽開放的端口,同時根據(jù)協(xié)議指紋技術識別出主機的操作系統(tǒng)類型。然后掃描器對開放的端口進行網(wǎng)絡服務類型的識別,確定其提供的網(wǎng)絡服務。

漏洞掃描器根據(jù)目標系統(tǒng)的操作系統(tǒng)平臺和提供的網(wǎng)絡服務,調用漏洞資料庫中已知的各種漏洞進行逐一檢測,通過對探測響應數(shù)據(jù)包的分析判斷是否存在漏洞.



關鍵詞:漏洞,和解,思路,安全

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉