日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

如何創(chuàng)建安全的Web應(yīng)用程序_.Net教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:解讀ASP.NET安全架構(gòu)
在開發(fā)Web程序中,我們可以選擇用自己的方法來(lái)實(shí)現(xiàn)安全的策略,或者可以購(gòu)買第三方的安全代碼和產(chǎn)品,不管怎么樣,都是要很大的花費(fèi)的,幸好在.NET Framework中已經(jīng)內(nèi)置了安全的解決方案。 ASP.NET和 .NET Framework 聯(lián)合IIS為Web應(yīng)用程序安全提供了一個(gè)基礎(chǔ)

把一個(gè)問(wèn)題說(shuō)清楚,是要有前提的,也要大家有一些通過(guò)的詞匯,就像大家談OO,就知道談的面向?qū)ο�,以及面向�(qū)ο蟮囊恍┨卣?懂設(shè)計(jì)模式的,一聽到"觀察者",就立馬知道什么意思。

一.下面看看安全的一些概念:

首先,我們來(lái)看看什么是安全性?

我們常常提起“實(shí)現(xiàn)安全性”“創(chuàng)建安全的系統(tǒng)”。所以安全性一般是定義很多,如:安全性就是保證系統(tǒng)可以完全按照我們想要的方式運(yùn)行;安全性就是防止以我們不希望的方式運(yùn)行系統(tǒng)...定義很多,但是不知道大家有沒(méi)有發(fā)現(xiàn),我們理解的安全的定義很狹窄的。怎么說(shuō)?我們一般認(rèn)為安全就是這樣的:采取一定的措施(主要是編程代碼的措施)處理程序運(yùn)行時(shí)的意外,或者防止意外發(fā)生。但是安全的問(wèn)題不僅僅只是代碼的問(wèn)題,所以在安全編程方面,我們要考慮的更多。

什么是安全

我們不能保證一個(gè)系統(tǒng)絕對(duì)的安全,不可能做到100%的安全。安全的定義的受到很多的限制,首先我們來(lái)看看一個(gè)例子。

我們都用過(guò)銀行的ATM機(jī),如果有人撿到了我們的卡想要盜取我們的錢,那么他只有猜我們的密碼。如果密碼的長(zhǎng)度只有一位數(shù),那么撿卡人第一次猜對(duì)的概率就是1/10,他只要十次就可以盜取我們的錢(假設(shè)可以不限次數(shù)的猜),那么系統(tǒng)的安全行很差;如果密碼是2位,那么密碼就有100中可能,那么撿卡人第一次才對(duì)的幾率就是1/100,第二次就是1/99,第三次1/98...系統(tǒng)的安全行也很差.

如果把密碼的嘗試限制在3次,如果密碼為2位數(shù),那么密碼被猜出的幾率就大大的減小了:

第一次猜中的幾率就是1/100

第二次猜中(第一次沒(méi)有中)的幾率就是(99/100) * (1/99)=0.01

第三次猜中(前兩次不中)的幾率就是(99/100)*(98/99)*(1/98)=0.01

三次之內(nèi)猜中的幾率就是:0.01+1.01+0.01=0.03

所以,當(dāng)我們限制了嘗試的次數(shù)的時(shí)候,系統(tǒng)就比之前安全了一些,但是系統(tǒng)還并不是很安全,只能說(shuō)比之前稍微的好了點(diǎn),但是風(fēng)險(xiǎn)依然很大。

為了使得系統(tǒng)更加的安全,就要減小系統(tǒng)的密碼被猜出的可能行,我們可以從兩個(gè)方面著手:

1.使得密碼嘗試的次數(shù)減小,如用戶只能輸入一次密碼;

2.加大密碼的位數(shù),如6位。這樣密碼被猜出的幾率就更加的小了,風(fēng)險(xiǎn)也小了很多,系統(tǒng)的安全行就又提高了。所以,我們常說(shuō)安全不安全的,都只是一個(gè)相對(duì)的概念。說(shuō)了這么多,就是要說(shuō)一點(diǎn):不要把安全看死了,安全不安全要看我們的環(huán)境。

在談后面的話題之前,讓我們來(lái)共享一些術(shù)語(yǔ):

脆弱性是系統(tǒng)的一個(gè)特征,它可能會(huì)使得應(yīng)用系統(tǒng)不安全按照我們預(yù)想的方式運(yùn)行。一般表示系統(tǒng)不好的特征。

威脅就是指利用錯(cuò)人性破環(huán)系統(tǒng)安全的可能行。

利用就是利用脆弱行的方法。

總結(jié)一句話就是:脆弱行導(dǎo)致了威脅,利用則實(shí)現(xiàn)了威脅,簡(jiǎn)言之,攻擊。

二、Web應(yīng)用中的安全問(wèn)題

首先我們就看看對(duì)Web的攻擊。攻擊有很多種的,其中一部分可以使用ASP.NET代碼進(jìn)行防范的,但是其他的攻擊方式還是可以產(chǎn)生破壞的,如直接攻擊服務(wù)器。下面就來(lái)看典型的例子。

我們之前說(shuō)過(guò),攻擊就是利用系統(tǒng)的脆弱性以實(shí)現(xiàn)一定的威脅。攻擊的結(jié)果也很多,如:

未經(jīng)授權(quán)的訪問(wèn)--用戶獲取了更多的權(quán)限,從而可以將應(yīng)用程序用于其他的途徑,如果獲取了網(wǎng)站的管理員的密碼,散布政治言論。

代碼執(zhí)行--在目標(biāo)系統(tǒng)上運(yùn)行惡意代碼,而且還會(huì)導(dǎo)致其他的威脅,如木馬。

拒絕服務(wù)--合法用戶被禁止訪問(wèn)應(yīng)用程序

信息失竊--機(jī)密的信息被盜取

破壞信息--信息遭到修改。如,站點(diǎn)被涂改,發(fā)布攻擊性的消息和政治言論。

下面我們就來(lái)看看常見的一些脆弱性,以及對(duì)它們的利用,以及引起的威脅。

緩沖區(qū)溢出

這個(gè)問(wèn)題由來(lái)已久,而且到現(xiàn)在為止,也是Web應(yīng)用種最常被利用的脆弱性。

當(dāng)應(yīng)用程序的外部輸入沒(méi)有經(jīng)過(guò)檢查就被插入內(nèi)存的時(shí)候,就會(huì)存在緩沖區(qū)溢出的脆弱性。如果插入的長(zhǎng)度超過(guò)了內(nèi)存中為此分配的空間的長(zhǎng)度,輸入就溢出,可能將占據(jù)內(nèi)存中的其他的地方,甚至運(yùn)行惡意的代碼。

對(duì)緩沖區(qū)溢出的主要利用就是把附加的數(shù)據(jù)寫到內(nèi)存中緩沖區(qū)的其他地方,這樣就常常導(dǎo)致程序的崩潰,因?yàn)閮?nèi)存破壞了,這也是拒絕服務(wù)器的攻擊方式,如果附加的數(shù)據(jù)設(shè)計(jì)的很巧妙的話,附加的數(shù)據(jù)還可以重寫函數(shù)的返回地址,那么程序就按照攻擊者的意愿執(zhí)行,病毒,木馬就是這樣。

當(dāng)然,在c++中,這個(gè)問(wèn)題很常見,因?yàn)镃++可以直接操作內(nèi)存地址,進(jìn)行很底層的操作。但是在.NET中是否也有這個(gè)問(wèn)題?

因?yàn)?net是基于托管代碼的,也就是說(shuō).net的代碼不是直接操作內(nèi)存,而是在中間隔了一層CLR。托管代碼的執(zhí)行要靠CLR來(lái)為止作為邊界檢查,所以CLR中的任何脆弱性都將轉(zhuǎn)變?yōu)閼?yīng)用程序的脆弱性。如果有高手知道了CLR的問(wèn)題,那么,托管代碼也出問(wèn)題。

腳本注入和跨站腳本攻擊

任何時(shí)候我們都要有這個(gè)心理:用戶都是惡意的。所以我們不能信任用戶的任何輸入,在用戶輸入的時(shí)候一定要檢驗(yàn)。假如沒(méi)有正確的處理好用戶的輸入,就可能在程序中引入腳本注入的脆弱性。該脆弱性允許用戶將自己額腳本注入到數(shù)據(jù)中,如在用戶留言中,用戶插入<script>alert('error');</script>,那么我們的留言的頁(yè)面就中是彈出提示。

跨站腳本的攻擊一般表現(xiàn)為一個(gè)在URL參數(shù)中帶有客戶端的腳本。這些腳本用來(lái)盜取用戶的cookie信息等,

我們這里只是簡(jiǎn)單的說(shuō)下,后面的一些文章還會(huì)具體的談,以及解決方案。

SQL注入

相信這個(gè)問(wèn)題,大家或多或少都知道一些,主要是惡意的用戶在我們的程序的數(shù)據(jù)庫(kù)中執(zhí)行精心設(shè)計(jì)的SQL語(yǔ)句。而且威脅很大,設(shè)置可以獲取服務(wù)器的管理員的權(quán)限。

分布式拒絕服務(wù)

也稱為DDOS(Disrtibute Denial Of Service)。DDOS攻擊主要就是用大量的計(jì)算機(jī)攻擊一個(gè)系統(tǒng)。很多的計(jì)算機(jī)聯(lián)合起來(lái)就可以發(fā)送很多的虛假的請(qǐng)求,以至于被攻擊的系統(tǒng)超負(fù)荷,而不能向其他的用戶提供服務(wù)。

蓄意工具者為了發(fā)動(dòng)DDOS,就必須獲取足夠多的機(jī)器。惡意的用戶設(shè)計(jì)在別人的電腦上注入木馬和病毒,獲取機(jī)器的控制權(quán),"借"別人的電腦發(fā)送攻擊。被控制的電腦就是所謂的"僵尸"。

DDOS攻擊一般來(lái)攻擊服務(wù)器,而且攻擊的方式也是防不勝防,很多的防護(hù)軟件和防火墻不能區(qū)分正確的請(qǐng)求和虛假的請(qǐng)求。

人的問(wèn)題

有時(shí)候,被利用的脆弱性不是技術(shù)上的脆弱性,而是人的脆弱性。如果用戶沒(méi)有安全的意識(shí),就容易受騙,而為攻擊者打開系統(tǒng)的。方式很多,如用Email欺騙用戶,誘使用戶執(zhí)行一些程序,還有就是蠕蟲...

蠻力攻擊

如果不采取一定的措施防止用戶無(wú)休止的嘗試連接應(yīng)用程序,那么我們就容易受到不計(jì)其數(shù)的猜測(cè)密碼口令的攻擊,即蠻力攻擊。

攻擊的方式主要就是設(shè)計(jì)一個(gè)程序,用它向目標(biāo)應(yīng)用發(fā)送很多的請(qǐng)求以測(cè)試不同的密碼口令。

有一點(diǎn)要注意:考慮安全問(wèn)題的時(shí)候,我們常常把程序比作為一個(gè)城堡,在城堡的周圍建造城墻并且嚴(yán)格盤查各個(gè)通道。保護(hù)Web程序與此類似,但是,如果這樣,那么我們對(duì)于已經(jīng)進(jìn)入城堡的用戶就無(wú)計(jì)可施了。

分享:如何使用ASP.NET Image Generation生成圖片縮略圖及水印
ASP.NET Image Generation內(nèi)置了ImageResizeTransform類,可以實(shí)現(xiàn)圖片大小調(diào)整功能。也可以擴(kuò)展ImageTransform實(shí)現(xiàn)自己的圖片變換類。 下面使用ASP.NET Image Generation生成圖片縮略圖及水印的代碼。 數(shù)據(jù)庫(kù) 以下為引用的內(nèi)容: CREATE

來(lái)源:模板無(wú)憂//所屬分類:.Net教程/更新時(shí)間:2009-07-23
相關(guān).Net教程