亚洲免费成人网,99久久er这里只有精品17,欧美一级毛片兔费播放,亚洲国产精品久久日

  • 歡迎使用超級(jí)蜘蛛查,網(wǎng)站外鏈優(yōu)化,收藏快捷鍵 CTRL + D

WEB开发常见的安全漏洞和解决思路


隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)安全變得越來越重要。程序員需要掌握基本的web安全知識(shí),防患于未然,下面列舉一些常見的安全漏洞,以及對(duì)應(yīng)的防御解決方案。

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

一、SQL注入

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

1、SQL注入的危害

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

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

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

  • 服務(wù)器被遠(yuǎn)程控制,被安裝后門

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

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

1)布爾型盲注

在互聯(lián)網(wǎng)剛剛興起的時(shí)候,該方法常常會(huì)被用來惡意登錄一些安全性不高的網(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='' ;

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

2)報(bào)錯(cuò)型注入

一個(gè)常見的語句為 :

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

通過修改 zhangsan 這個(gè) 入?yún)ⅲ苋菀讓QL拼接為

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';

這個(gè)語句會(huì)報(bào)一個(gè)固定的錯(cuò)誤

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

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

3)union注入

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

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

這種方式可以查詢到你的任意表的信息,嚴(yán)重的話可能會(huì)被脫庫。

4)SQL堆疊查詢

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

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

更為嚴(yán)重的是,分號(hào)后面的語句時(shí)可以隨意寫的,如果時(shí)拼上 drop 或者 delete 之類的語句 就可以會(huì)造成刪庫的風(fēng)險(xiǎn)了。

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

2.jpg

3、防止SQL注入的方式

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

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

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

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

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

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

二、CSRF漏洞

CSRF跨站點(diǎn)請(qǐng)求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,攻擊者盜用了你的身份,以你的身份來調(diào)用后臺(tái)接口,對(duì)服務(wù)器來說這個(gè)請(qǐng)求是完全合法的,但是實(shí)際上,這個(gè)接口的調(diào)用,你卻并不知情。

簡單模擬一下整個(gè)過程如下:

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

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

當(dāng)然例子里是個(gè) deletedata ,而實(shí)際上這個(gè)接口的含義也可能是查詢了某個(gè)數(shù)據(jù),甚至?xí)r轉(zhuǎn)了一筆錢等等,那么影響就非常大了。

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

1.驗(yàn)證 HTTP Referer 字段

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

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

2.在請(qǐng)求中增加 token 并驗(yàn)證;

CSRF攻擊之所以能夠成功,是因?yàn)楣粽呖梢詡卧煊脩舻恼?qǐng)求,是因?yàn)楹诳屠靡阎畔⒁约癱ookie中的未知信息 來發(fā)起了攻擊,那么,如果我們添加一個(gè)不能偽造的并且不在cookie中的未知信息,那么攻擊就無法產(chǎn)生了。因此,我們可以在HTTP請(qǐng)求中以參數(shù)的形式加入一個(gè)隨機(jī)產(chǎn)生的token,并在服務(wù)端進(jìn)行token校驗(yàn),如果沒有token或者token的值不正確,我們就認(rèn)為這是一個(gè)非法的請(qǐng)求,拒絕掉他就可以了。

三、SSRF漏洞

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

可能會(huì)產(chǎn)生SSRF 漏洞的地方主要有:

1.能夠?qū)ν獍l(fā)起網(wǎng)絡(luò)請(qǐng)求的地方

2.請(qǐng)求遠(yuǎn)程服務(wù)器資源的地方

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

舉一個(gè)簡單的示例:

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

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

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

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

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

2.服務(wù)端的服務(wù)都需要做訪問授權(quán),避免root啟動(dòng),禁止非正常用戶訪問服務(wù)。

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

SQL注入

四、XSS漏洞

1.XSS簡介

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

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

2.XSS攻擊的危害

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

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

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

4、非法轉(zhuǎn)賬

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

6、網(wǎng)站掛馬

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

3.防止XSS解決方案

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

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

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

  • 對(duì)數(shù)據(jù)進(jìn)行Html Encode 處理: 用戶將數(shù)據(jù)提交上來的時(shí)候進(jìn)行HTML編碼,將相應(yīng)的符號(hào)轉(zhuǎn)換為實(shí)體名稱再進(jìn)行下一步的處理。

  • 過濾或移除特殊的Html標(biāo)簽, 例如: <script>, <iframe> , < for <, > for >, &quot for

  • 過濾js事件的標(biāo)簽。例如 "onclick=", "onfocus" 等等。

五、越權(quán)漏洞

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

1.水平越權(quán)

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

這個(gè)頁面在顯示列表時(shí),就通過后臺(tái)進(jìn)行過濾,只顯示了當(dāng)前登錄者的任務(wù)列表

任務(wù)名

查看詳情

任務(wù)1

getInfo?id=1

任務(wù)2

getInfo?id=2

任務(wù)3

getInfo?id=3

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

2.垂直越權(quán)

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

要避免越權(quán)漏洞,主要還是需要從邏輯上進(jìn)行完善,以下有幾點(diǎn)建議:

1.所有的接口都要做到兩層鑒權(quán),包括接口本身的鑒權(quán)以及接口對(duì)應(yīng)的數(shù)據(jù)的鑒權(quán)

2.鑒權(quán),服務(wù)端對(duì)請(qǐng)求的數(shù)據(jù)和當(dāng)前用戶身份做校驗(yàn)

3.所有的鑒權(quán)都要在后臺(tái)做,不能依靠前端來鑒權(quán)

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

5.對(duì)于特別敏感的操作,可以進(jìn)行二次權(quán)限校驗(yàn)

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

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

本文鏈接:http://www.sztqnet.com/article/895.html

超級(jí)蜘蛛工具

  • 網(wǎng)站鏈接HTTP狀態(tài)批量檢測_在線批量檢測網(wǎng)站鏈接狀態(tài)_超級(jí)蜘蛛查
  • 百度關(guān)鍵詞排名查詢_網(wǎng)站關(guān)鍵詞排名批量查詢_超級(jí)蜘蛛查
  • 百度收錄查詢_在線百度收錄批量查詢_超級(jí)蜘蛛查
  • 域名IP地址批量查詢_在線批量查詢網(wǎng)站IP地址_超級(jí)蜘蛛查
  • 超級(jí)外鏈發(fā)布工具_(dá)在線免費(fèi)批量發(fā)布SEO外鏈_超級(jí)蜘蛛查
  • 網(wǎng)頁蜘蛛模擬抓取測試工具_(dá)超級(jí)蜘蛛工具_(dá)超級(jí)蜘蛛查