偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

概述ASP.NET安全

開(kāi)發(fā) 后端
本文介紹ASP.NET安全,每一個(gè)技術(shù)都有自己的特點(diǎn),學(xué)會(huì)利用這里技術(shù)特點(diǎn)和特性就可以幫助我們解決很多的實(shí)際問(wèn)題。

如果做一個(gè)項(xiàng)目,涉及到一個(gè)網(wǎng)站的開(kāi)發(fā),站點(diǎn)需要大量的數(shù)據(jù)輸入和填寫(xiě)各種的用戶(hù)資料,一個(gè)兄弟對(duì)數(shù)據(jù)輸入沒(méi)有太上心,對(duì)輸入的數(shù)據(jù)沒(méi)有進(jìn)行必要的處理和過(guò)濾。結(jié)果系統(tǒng)上線(xiàn)可怕的事情發(fā)生了,第一天站點(diǎn)出現(xiàn)了各種各樣的錯(cuò)誤,站點(diǎn)被數(shù)據(jù)撐的亂七八糟,HTML的數(shù)據(jù)把站點(diǎn)搞的面目全非,第二天站點(diǎn)管理員密碼被修改,第三天…。日子還在繼續(xù)…我可憐的兄弟開(kāi)始焦頭爛額一。

一.次攻擊的例子

一般的web系統(tǒng),包括ASP.NET開(kāi)發(fā)的web系統(tǒng)都涉及到數(shù)據(jù)輸入的功能,數(shù)據(jù)輸入是一個(gè)在普通不過(guò)的操作,但對(duì)于一個(gè)黑客或者蓄意要破壞你系統(tǒng)的人來(lái)說(shuō),小小的數(shù)據(jù)輸入的文本框里面蘊(yùn)藏著很大的攻擊系統(tǒng)的機(jī)會(huì)。
 
首先也從一個(gè)現(xiàn)象談起,大家在編寫(xiě)ASP.NET系統(tǒng)的時(shí)候一般都要涉及到登陸,很多人是按照下面的方法來(lái)編寫(xiě)登陸代碼的,我們結(jié)合sql語(yǔ)句來(lái)介紹。(這里涉及的sql語(yǔ)句以sql SERVER為準(zhǔn))。

  1. dataaccessb Db=new DataAccessB();  
  2. if(db.select("select*from admin where name='"+Uername.Text+"' 
    and 
    pwd='"+Password.Text+"'").Rows.Count<=0)  
  3. {  
  4. response.write("<script>alert('用戶(hù)名或密碼錯(cuò)誤')</script>");  
  5. session["admin"]="0";  
  6. }  
  7. else  
  8. {  
  9. session["admin"]="1";  
  10. server.transfer("manager.aspx");  


假如是上述的代碼,如果侵入者使用一點(diǎn)點(diǎn)非常的技巧就可以輕松的得到一個(gè)導(dǎo)致數(shù)據(jù)庫(kù)錯(cuò)誤判斷的sql語(yǔ)句,從而使系統(tǒng)把輸入任何數(shù)據(jù)的人放入系統(tǒng)管理頁(yè)面.

下面來(lái)看看到底做了哪些手腳?

攻擊者只需要在用戶(hù)名和密碼處輸入or 1=1,就可以使得系統(tǒng)得到一個(gè)錯(cuò)誤的SQL語(yǔ)句,系統(tǒng)得到的錯(cuò)誤語(yǔ)句如下:

"select*from admin where name='' OR 1=1 and pwd='' OR 1=1''通過(guò)這樣恒成立的SQL語(yǔ)句就可以得到全部的數(shù)據(jù),按照代碼的判斷,系統(tǒng)將認(rèn)為有符合要求的數(shù)據(jù),從而進(jìn)入系統(tǒng)管理界面。

通過(guò)諸如此類(lèi)的方法侵入者可以在任何一個(gè)要輸入信息的窗體輸入一些非法的數(shù)據(jù)從而進(jìn)入需要密碼才可以進(jìn)入的系統(tǒng),另外還可以通過(guò)在比如查詢(xún)頁(yè),通過(guò)輸入特定的字符得到一些機(jī)密的信息,等等。

通過(guò)上述的介紹,不難看出數(shù)據(jù)的輸入是存在隱患的,如果設(shè)計(jì)的時(shí)候不考慮清楚,將來(lái)可是后患的.那如何來(lái)安全它們呢?

二.最易上手的三招

作為數(shù)據(jù)輸入篇關(guān)鍵是解決數(shù)據(jù)輸入安全性的問(wèn)題,那么我們?nèi)绾瓮ㄟ^(guò)必要的手段來(lái)把數(shù)據(jù)輸入這個(gè)環(huán)節(jié)做的盡可能的ASP.NET安全些呢?

1. 對(duì)數(shù)據(jù)庫(kù)角色的管理

我們?cè)谑褂肁SP.NET連接數(shù)據(jù)庫(kù)的時(shí)候,只要你不是使用指定角色,比如aspnet這個(gè)角色訪(fǎng)問(wèn)sql SERVER 2000,或者信任連接。那么都需要在數(shù)據(jù)庫(kù)連接字串里面加上一個(gè)帳戶(hù)。一般這個(gè)帳戶(hù)都是SQL SERVER系統(tǒng)內(nèi)開(kāi)的一個(gè)帳戶(hù)。在實(shí)際的部署過(guò)程中很多人都習(xí)慣性的把這個(gè)帳戶(hù)的權(quán)限設(shè)置成系統(tǒng)管理員,或者對(duì)好幾個(gè)庫(kù)都可以操作的角色。這樣帶來(lái)的危險(xiǎn)是一旦此帳號(hào)使用的系統(tǒng)被別人注入成功的話(huà),別人將可以對(duì)數(shù)據(jù)庫(kù)的一個(gè)庫(kù)或者多個(gè)庫(kù)發(fā)起攻擊,造成難以挽回的損失。

建議一個(gè)系統(tǒng)一個(gè)帳戶(hù)和權(quán)限。權(quán)限按照夠用就行,越低越安全的準(zhǔn)則。

2. 給系統(tǒng)加數(shù)據(jù)驗(yàn)證控件

結(jié)合上面的例子,其實(shí)只要開(kāi)發(fā)的時(shí)候給我們的輸入文本框簡(jiǎn)單的加一個(gè)驗(yàn)證控件就可以解決問(wèn)題了。

另外還有一個(gè)辦法就是對(duì)于綜合性的數(shù)據(jù)殊輸入我們可以通過(guò)string..replace()的方式來(lái)過(guò)濾掉一些諸如“‘= LIKE等等的敏感字符,使的輸入的非法數(shù)據(jù)無(wú)法正常的被數(shù)據(jù)庫(kù)所執(zhí)行。

3.代碼的正確寫(xiě)法

養(yǎng)成一個(gè)良好的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)代碼的正確寫(xiě)法,將幫助我們減少被數(shù)據(jù)輸入攻擊的機(jī)會(huì)。

利用參數(shù)的方式來(lái)訪(fǎng)問(wèn)操作數(shù)據(jù)庫(kù)就是一個(gè)比較好的方式。結(jié)合前文提到的那個(gè)攻擊例子,我們完全可以改造一些代碼,使的ASP.NET安全性成倍的增加。

  1. sqldataadapter Auery_Ad = new SqlDataAdapter
    ("SELECT * FROM admin WHERE 
    name = @user AND pwd=@pass", the_connection);  
  2. sqlparameter ParamUser = Auery_Ad.SelectCommand.Parameters.Add (>> 
  3. "@user",sqldb.varchar,20);  
  4. paramuser.valueuername.Text;  
  5. sqlparameter ParamPwd = Auery_Ad.SelectCommand.Parameters.Add (>> 
  6. "@ pass ",SqlDb.VarChar,20);  
  7. parampwd.valuePassword.Text; 

最后就是要注意一下跨站攻擊,跨站攻擊目前在.net FRAMWORK1.1中也有所完善,一般在傳遞一些含有腳本字符的數(shù)據(jù)的時(shí)候,系統(tǒng)都會(huì)提示“發(fā)現(xiàn)潛在的危險(xiǎn)腳本”來(lái)防止跨站的攻擊。但這個(gè)方式也會(huì)妨礙我們平時(shí)的一些正常的操作和效果。

在web.config文件里面有如下的配置信息:

  1. <pages validateRequest="false" /> 


設(shè)置為true的話(huà),系統(tǒng)將禁止html格式代碼數(shù)據(jù)。

三.小結(jié):

相信通過(guò)上述的規(guī)范編寫(xiě)和防范,一般常規(guī)的注入式攻擊和數(shù)據(jù)輸入安全是可以保證的了,每一個(gè)技術(shù)都有自己的特點(diǎn),學(xué)會(huì)利用這里技術(shù)特點(diǎn)和特性就可以幫助我們解決很多的實(shí)際問(wèn)題。ASP.NET安全代碼的編寫(xiě),是可以找到很多的現(xiàn)成技術(shù)和資料的。

【編輯推薦】

  1. 淺析ASP.NET Web 安全性
  2. ASP.NET的Session State
  3. 淺析IsPostBack屬性ASP.NET
  4. ASP.NET構(gòu)架與安全機(jī)制
  5. 概述ASP.NET水晶報(bào)表
責(zé)任編輯:佚名 來(lái)源: 賽迪網(wǎng)
相關(guān)推薦

2009-07-22 17:45:35

ASP.NET教程

2009-07-28 17:17:19

ASP.NET概述

2009-07-22 16:17:39

ASP.NET AJA

2009-07-23 16:55:55

ASP.NET特點(diǎn)

2009-08-05 13:58:26

ASP.NET Mem

2009-07-27 15:52:21

ASP.NET特點(diǎn)ASP.NET概述

2009-07-22 15:58:52

ASP.NET AJA

2009-08-04 16:46:58

ASP.NET內(nèi)置Ht

2009-08-04 15:22:33

ASP.NET緩存機(jī)制

2009-07-23 10:52:38

2009-07-22 10:09:59

ASP.NET MVC

2009-07-30 15:17:16

ASP.NET 2.0

2009-07-28 11:09:02

ASP.NET狀態(tài)類(lèi)型

2009-08-05 17:54:04

ASP.NET運(yùn)行模式

2009-07-20 10:16:13

配置ASP.NET A

2009-12-18 16:51:41

ASP.NET概述

2009-07-22 17:32:40

ASP.NET應(yīng)用程序

2009-08-05 16:04:50

2009-07-29 15:53:22

ASP.NET AJA

2009-07-30 14:55:43

ASP.NET 2.0
點(diǎn)贊
收藏

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