自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

當(dāng)我們談Web應(yīng)用安全的時候 主要談哪些

安全
在本文中,主要探討Web應(yīng)用程序的安全性,主要包括漏洞攻擊者如何利用不安全的Web應(yīng)用程序來危害整個服務(wù)器或者破壞一個網(wǎng)站、以及開發(fā)人員如何避免引入這些漏洞。

在本文中,主要探討Web應(yīng)用程序的安全性,主要包括漏洞攻擊者如何利用不安全的Web應(yīng)用程序來危害整個服務(wù)器或者破壞一個網(wǎng)站、以及開發(fā)人員如何避免引入這些漏洞。主要介紹業(yè)界幾個需要被著重考慮的Web應(yīng)用程序的安全問題:SQL注入、表格和腳本以及Cookies和會話管理。

一、防止SQL注入

SQL(結(jié)構(gòu)化查詢語言)是基于美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)標(biāo)準(zhǔn),并作為共同的語言與數(shù)據(jù)庫通信。每個數(shù)據(jù)庫系統(tǒng)增加了一些專有功能到基本的ANSI SQL。

SQL注入是一門將制作好的SQL注入用戶輸入字段的一種技術(shù),它是網(wǎng)頁形式的一部分——用來繞過自定義登錄到網(wǎng)站。然而,SQL注入也可以用于登錄或者接管一個網(wǎng)站,因此要確保其能防止攻擊很重要。

開發(fā)人員和管理員可以采取許多不同的步驟解決SQL注入的問題。以下是為開發(fā)者提供的解決方案:

· 過濾的所有輸入字段單引號(' ),以防止未經(jīng)授權(quán)的登錄。

· 過濾器SQL命令的所有輸入字段,如插入,選擇,工會,刪除和exec ,以保護服務(wù)器操作。 (請確保操作是在過濾單引號后進行)

· 限制輸入字段長度(這將限制攻擊者的選擇),并用服務(wù)器端腳本驗證輸入長度。

表1 常見的攻擊者攻擊SQL服務(wù)器儲存過程

當(dāng)我們談Web應(yīng)用安全的時候 主要談哪些

· 使用選項來過濾“轉(zhuǎn)義字符” (用于注入SQL代碼,比如單引號) ,如果該數(shù)據(jù)庫提供了該功能。

· 除了Web 服務(wù)器,將數(shù)據(jù)庫在不同的計算機的Web服務(wù)器上。一旦數(shù)據(jù)庫遭到黑客攻擊,也很難攻擊到Web服務(wù)期。

· 限制的服務(wù)器端腳本的用戶權(quán)限。從服務(wù)器端腳本中記錄到數(shù)據(jù)庫的通常的做法是使用管理用戶,但這可能同事也讓攻擊者趁機運行需要管理用戶的數(shù)據(jù)庫任務(wù)(如修改表或運行存儲過程) 。所以用最小的用戶權(quán)限分配來達到此目的。

· 刪除所有不必要的擴展存儲過程來限制攻擊者的可能性。

· 將數(shù)據(jù)庫放置到一個單獨的空間(在防火墻后面) ,與Web容器和應(yīng)用服務(wù)器相隔離。

不同于開發(fā)商,管理員沒有代碼的控制權(quán),不能代表程序員產(chǎn)生變化。然而管理員可以通過運行一些測試,并確保代碼安全來降低風(fēng)險:

· 確保Web服務(wù)器給返回一個自定義錯誤頁。這樣一來,服務(wù)器將不會返回SQL錯誤,這將使攻擊者更難獲得SQL數(shù)據(jù)。(自定義錯誤頁面不應(yīng)該包含任何可能有助于攻擊者的信息,不同于常規(guī)將返回部分SQL的錯誤頁面。)

· 只部署從Web服務(wù)器分離數(shù)據(jù)的Web應(yīng)用程序。

· 聘請外部機構(gòu)對Web服務(wù)器上執(zhí)行穿透測試,并尋找SQL注入攻擊。

· 使用一個專用的自動掃描設(shè)備來探索由程序員的失誤導(dǎo)致的SQL注入漏洞。

· 部署安全解決方案來驗證用戶輸入并過濾SQL注入企圖。#p#

二、防止窗體和腳本泄密

窗體用于允許用戶輸入,但也可以用來管理會話,并在會話內(nèi)傳輸?shù)闹匾獢?shù)據(jù)(如用戶或會話標(biāo)識符)。攻擊者可以暴露嵌入在創(chuàng)窗口中的數(shù)據(jù),并通過Web應(yīng)用暴露其他用戶信息,或以較低的價格在電子商務(wù)中進行交易。3種暴露形式如下:

· 禁用客戶端腳本

· 在URL中傳遞參數(shù)

· 通過隱藏字段傳遞參數(shù)

1. 客戶端腳本

一些開發(fā)人員使用客戶端腳本來驗證各種方式輸入字段:

· 限制輸入字段的大小

· 禁止某些字符(如單引號)

· 執(zhí)行其他類型的驗證(這些可以具體到每個站點)

通過禁用客戶端腳本( JavaScript或VBScript)中,此驗證可輕松繞過。開發(fā)人員應(yīng)該在服務(wù)器端驗證所有字段。這可能需要服務(wù)器上的額外資源。

2. 通過URL傳遞參數(shù)

窗口有兩種方法來傳遞數(shù)據(jù): post和get 。 post命令。在內(nèi)容流發(fā)送數(shù)據(jù)和get命令在URL中發(fā)送數(shù)據(jù)。攻擊者可以利用get命令來發(fā)送無效或不正確的數(shù)據(jù),或發(fā)送惡意代碼。

例如,假設(shè)我們有這樣的形式:

...

Username:

Password:

...

讓我們假設(shè)用戶輸入someusername作為用戶名,somepassword為密碼。瀏覽器會被重定向到這個URL

http://thesite/login.asp?username=someusername?password=somepassword

攻擊者可以通過簡單地修改URL的數(shù)據(jù)(利用此類型的URL在瀏覽器的地址欄)。這個方法可以用在電子商務(wù)網(wǎng)站來改變項目的價格。例如,看看下面的網(wǎng)址:

http://somesite/checkout.asp?totalprice=100

攻擊者可以簡單地改變“TOTALPRICE”的值,并執(zhí)行檢出有以較低的價格比之意。這可以簡單地通過改變這樣的URL來完成:

http://somesite/checkout.asp?totalprice=50

Web應(yīng)用程序?qū)?zhí)行檢驗,但總價為50美元(代替了100美元)。

另一種情況是,在登錄后,用戶識別正在使用GET發(fā)送,讓攻擊者修改它,并在另一個用戶的名義執(zhí)行操作。以下網(wǎng)址就是一個例子

http://somesite/changeuserinfo.asp?user=134

攻擊者可以更改“用戶”的值,并當(dāng)存在用戶的時候獲得該用戶的數(shù)據(jù)。

3. 通過隱藏字段傳遞數(shù)據(jù)

POST在發(fā)送數(shù)據(jù)的時候使用的是HTTP命令。不同于get,這種方法不會顯示在URL中的數(shù)據(jù),但它也更容易被利用??紤]以下表格:

...

...

這種形式使用POST傳輸用戶的標(biāo)識符。攻擊者可以保存HTML ,修改用戶ID字段,修改檢測路徑(鏈接到原來的網(wǎng)站,如:

4. 解決數(shù)據(jù)傳輸問題

開發(fā)人員可以使用GUID 或通過加密的信息,修改管理會話信息隱藏起來的數(shù)據(jù)來阻止攻擊者。

· 管理會話信息: 大多數(shù)服務(wù)器端腳本技術(shù)允許開發(fā)人員來存儲用戶的會話信息,這是節(jié)省特殊會話信息最安全的方法,因為所有的數(shù)據(jù)都存儲在本地Web服務(wù)器計算機上。

· 使用GUID:全局唯一標(biāo)識符或GUID是一個128位的隨機生成的數(shù)字具有2128的可能值。GUID可以作為用戶標(biāo)識符被Web應(yīng)用程序程序員使用。假設(shè)一個Web服務(wù)器有40億用戶(大約232 ,遠遠超過了上網(wǎng)人數(shù)),這意味著平均每個用戶有296可能值(2128 /232 = 296 )。由于296接近于7后面28個0,攻擊者就沒有機會猜測,訪問正確的GUID 。

· 對數(shù)據(jù)進行加密:開發(fā)人員可以加密通過數(shù)據(jù),而不是用明文通過數(shù)據(jù)。這些數(shù)據(jù)應(yīng)該用主密鑰加密(僅在Web服務(wù)器上儲存的對稱密鑰用于儲存客戶端數(shù)據(jù)) 。如果攻擊者試圖修改加密數(shù)據(jù),客戶端將檢測到有人篡改數(shù)據(jù)。

值得注意的是:切勿使用用戶的信息衍生信息作為隱藏的標(biāo)識符,如用戶名MD5 hash。攻擊者會嘗試找到這樣的快捷方式,并暴露它們。#p#

三、Cookies和會話管理

Web會話根據(jù)不同的服務(wù)器端腳本技術(shù)有不同的實現(xiàn)方式,但一般當(dāng)用戶輸入該網(wǎng)站它們就會啟動,并且當(dāng)用戶關(guān)閉瀏覽器或會話超時它們就會終止。會話用于跟蹤用戶的活動,諸如用戶加入商品到購物車中,該網(wǎng)站通過使用會話標(biāo)識符跟蹤商品進度。

會話使用cookie(由網(wǎng)站每個站點或每個頁面發(fā)送的數(shù)據(jù),由用戶的瀏覽器存儲)。每次用戶訪問Web站點時就發(fā)送了一個cookie,瀏覽器會發(fā)送cookie返回到該網(wǎng)站。(雖然Cookie可以被用來跟蹤用戶的上網(wǎng)行為和被認為是一個主要的隱私威脅,但他們?nèi)匀皇菚捁芾淼淖罴衙浇椤?)會話使用Cookie來識別用戶,并以積極的會話標(biāo)識符配對。

攻擊者可以濫用會話和cookie,下面部分將處理各種風(fēng)險:

· 會話盜竊

· 通過發(fā)送數(shù)據(jù)到其他用戶管理會話

· Web服務(wù)器的cookie的攻擊

· 保護會話

1. 會話盜竊

假設(shè)一個用戶在登錄到使用會話的網(wǎng)站。該網(wǎng)站作為驗證過標(biāo)記會話并允許身份驗證的用戶瀏覽安全區(qū)域。運用post或get來保存弱會話標(biāo)識符或其他相關(guān)的識別數(shù)據(jù)(如電子郵件地址)不是最好的選擇。取而代之的是,網(wǎng)站可以使用cookie命令來保存敏感數(shù)據(jù),但攻擊者也可以攻破。服務(wù)器端的cookie是另一種選擇。

讓我們假設(shè)網(wǎng)站使用電子郵件地址作為識別數(shù)據(jù)。之后,用戶必須登錄后,系統(tǒng)才會發(fā)送給瀏覽器一個包含用戶的電子郵件地址的cookie。對于每一個用戶將訪問的頁面,瀏覽器將發(fā)送包含用戶E-mail地址的cookie。該網(wǎng)站會檢查Cookie中的數(shù)據(jù),并允許用戶訪問通過許可證的網(wǎng)頁。

攻擊者可能修改在cookie中的數(shù)據(jù)。然而,假設(shè)cookie包含someemail@site.com ,我們每次訪問網(wǎng)站的時候就可以自動訪問限制區(qū)域。如果攻擊者將他cookie中的E- mail地址(位于他的計算機上)改為someotheremail@site.com ,下一次攻擊者訪問站點時,他就會被默認為是該用戶 ,允許他訪問用戶的數(shù)據(jù)。

2. 無數(shù)據(jù)發(fā)送到用戶的會話管理

有些用戶禁用cookies(保護自己的隱私),這表明也不允許會話管理(其需要Cookies)。除非該網(wǎng)站使用的是安全性較低方法來管理會話,跟蹤用戶的唯一方法是通過使用IP地址作為識別碼。然而,這種方法有很多問題:

· 有些用戶通過瀏覽網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),如企業(yè)用戶,它們將共享一個或有限數(shù)量的IP地址。

· 有些用戶上網(wǎng)通過匿名代理,他們將分享這個代理的IP地址(雖然有些代理通過發(fā)送客戶端的地址來允許Web站點使用它的會話管理)。

· 有些用戶使用撥號連接和共享一個IP地址區(qū),這意味著當(dāng)用戶斷開連接時,下一個連接的用戶將得到該IP地址。(這個問題可以用一個短的IP超時來解決,在時間到期之后,IP地址不會被鏈接到一個會話。)

3. 確保會話跟蹤

確保會話跟蹤的最好方法是使用一個難以猜測的標(biāo)識符,來確定是否是來自用戶的數(shù)據(jù),如加密字符串或GUID ,并將該標(biāo)識符鏈接到用戶的IP地址。以防多個用戶共享一個IP地址,會話標(biāo)識符可用于區(qū)分它們。

此外,短的超時時間可以在限制的時間用完以后,刪除活動會話。這表明,如果用戶不正常關(guān)閉瀏覽器(如在一臺計算機或瀏覽器崩潰的情況下),該會話由服務(wù)器關(guān)閉。

4. Web服務(wù)器的Cookies攻擊

攻擊者通過專用軟件打開很多連接,使用cookies管理來耗盡Web服務(wù)器的資源。由于當(dāng)一個瀏覽器關(guān)閉時,該軟件不會發(fā)送“關(guān)閉”事件,該會話不會被刪除直到超時。在此期間,該會話的信息被保存或者在存儲器中或硬盤驅(qū)動器,浪費資源。

解決這個問題的方法是配置防火墻,以便它不容許更大于每秒特定數(shù)目的連接,這將阻止攻擊者啟動無限數(shù)量的連接。#p#

四、注意其他一般攻擊

有些攻擊是不屬于任何特定類別的一部分,但他們?nèi)匀粚eb應(yīng)用程序構(gòu)成顯著風(fēng)險。其中易損壞的腳本,嘗試強制性登錄,和緩沖區(qū)溢出。

1. 易損壞腳本

有人公開使用的腳本(這在本質(zhì)上是等同于Web應(yīng)用程序)包含錯誤,允許攻擊者查看或修改文件,甚至接管Web服務(wù)器的計算機。找出Web服務(wù)器是否包含這樣的腳本最好的方法是運行一個漏洞掃描器,不管是免費的或商用的。如果找到這樣一個腳本,它會被更新(更新為不容易受攻擊的版本)或被其他腳本替代。

2. 強制性登錄

攻擊者可以嘗試使用字典進行強制性登錄(一個標(biāo)準(zhǔn)的Web登錄或自定義的ASP)。有許多的打擊這種強制性攻擊的方法:

· 限制每個IP地址的每秒連接數(shù)(在防火墻級別或服務(wù)器端腳本級別進行定義)

· 強制用戶選擇包含大寫和小寫字母和數(shù)字的高安全性密碼

3. 緩沖區(qū)溢出

緩沖區(qū)溢出可以用來獲得對Web服務(wù)器的控制。攻擊者發(fā)送大量包含匯編代碼的輸入,如果腳本存在漏洞,字符串會被執(zhí)行,并且通常運行一個木馬程序,這將允許攻擊者接管計算機。

結(jié)論

Web應(yīng)用程序比客戶端應(yīng)用程序更難保證安全性,因為它不像Web服務(wù)器有四,五個主要供應(yīng)商的Web服務(wù)器,它 有大量的Web應(yīng)用程序和自定義腳本數(shù)量,而且每個都可能包含潛在的漏洞。對于開發(fā)人員來說,確保應(yīng)用程序安全的最佳方法是使用建議的安全措施和可以掃描代碼的軟件,并提醒用戶潛在的安全問題。管理員需要定期掃描其Web站點中的漏洞。

責(zé)任編輯:藍雨淚 來源: TechTarget中國
相關(guān)推薦

2019-12-24 11:19:44

容器DockerLinux

2016-11-22 23:44:56

2022-03-11 21:28:31

部署開發(fā)服務(wù)器

2020-11-16 15:47:05

SaaS軟件轉(zhuǎn)型

2019-03-20 16:34:56

華為中國生態(tài)伙伴大會2AI

2009-07-04 15:17:37

2016-01-29 16:47:12

2018-04-24 16:38:49

招聘經(jīng)驗主導(dǎo)

2011-12-12 19:36:30

微軟

2010-01-26 10:00:30

Google工程師Web

2014-03-21 09:51:42

2011-11-17 10:34:14

內(nèi)網(wǎng)安全

2011-06-13 15:25:45

SEOWEB標(biāo)準(zhǔn)

2011-06-21 08:56:19

IOjdk6

2011-06-13 15:45:58

WEB標(biāo)準(zhǔn)SEO

2019-06-04 14:36:04

高并發(fā)Java架構(gòu)

2010-07-26 15:40:18

Telnet連接

2011-06-13 16:54:25

WEB標(biāo)準(zhǔn)SEO

2014-12-25 16:07:32

DHH混合移動應(yīng)用Hybrid App

2013-07-01 13:25:43

SDN控制器軟件控制網(wǎng)絡(luò)SDN
點贊
收藏

51CTO技術(shù)棧公眾號