国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

用ASP.NET 1.1 新特征防止Script攻擊

2024-07-10 12:56:18
字體:
來源:轉載
供稿:網友


  網站的安全,很多時候,幾乎代表了一個單位網絡的安全。對于將網站作為企業對外形象的企業或者政府而言,網站安全更加重要。現在很多網站都安裝了防火墻等安全設備,可是,一些簡單的進攻,反而頗為讓人傷腦筋。比如,通過網站,提交惡意代碼,這就是比較難以防范的一種進攻,一個比較簡單的具體舉例,在需要用戶提交email地址的數據項,如果用戶提交以下信息:<script>alert(“hello from script”)</script>,結果會怎樣呢?當別的用戶進入含有這個信息的頁面的時候,就會見到一個彈出信息,這是以上提交的惡意代碼直接運行的結果,如果這樣的代碼稍微改動,更加復雜一點,破壞效果自然更加驚人。程序員在設計程序的時候,如果沒有較好考慮對用戶提交信息進行適當的檢測,很容易就會因為程序的不健全而導致不可預料的后果。在asp和asp.net1.0或者其他任何開發工具中,我們不得不在程序中采用一些技巧來防范用戶提交的惡意代碼,而程序設計的原則就是“假定每一個用戶提交的信息都是惡意的”,所以,程序員不得不拿出部分精力來做提交信息的檢測工作。而在最新發布的asp.net1.1中,這樣的檢測就簡單甚至是不必了?,F在,我們來看一個具體的例子:
以上的代碼很簡單,就是將用戶輸入的信息進行現實,運行以后是這樣的:



以上我們輸入一個簡單的“hello world”,可以看到,頁面很正常的進行了顯示,那么,如果我們輸入“<script>alert("hello!")</script>”會怎樣呢?現在就來看看運行結果:



很明顯,是一個錯誤信息:“potentially dangerous request.form value was detected…”意思是用戶提交的信息有潛在的危險,所以,不予提交。這就是asp.net的最新特征之一,將用戶提交信息的潛在危險排除到最小,當然,要使用這個最新特征是很簡單的,直接在頁面中可以這樣設定:

<%@ page validaterequest="true" %>

或者,也可以在網站配置文件web.config中設定:

<configuration>

<system.web>

<pages validaterequest="true" />

</system.web>

</configuration>

當然,要取消這個特征也是可以的,直接在以上設定中將false改為true就可以了。我們強烈建議將以上特征打開,設置為true,對每一個用戶的輸入進行檢測?,F在,我們看看如果用戶現在關閉以上特征,頁面運行會有怎樣的結果:



可以看到,以上頁面運行以后,出現了用戶輸入直接運行的結果:彈出一個提示信息。

那么,如果用戶不希望使用asp.net1.1的以上新特征,而又希望可以比較好的實現程序的安全性,應該怎樣做呢?可以直接使用server.htmlencode(string)來現實,將所有用戶的輸入信息轉換為html格式,也就是原封不動(現實出來和輸入的一樣)的現實用戶輸入的信息而不對惡意代碼進行運行?,F在,我們來看一個舉例:



以上代碼和前面提到的代碼唯一的區別就是對用戶輸入進行了html編碼,運行結果如下:



我們可以看到,用戶帶有潛在危險的輸入,已經完全被避免了。以上方式和采用asp.net1.1的新特征相比,有什么不一樣呢?以上方式依然接受用戶輸入,只是將危險代碼進行了修改;而使用asp.net1.1的新特征,危險代碼是完全拒之門外的,不會對數據進行處理。
以上我們試驗了asp.net1.1的最新功能,并將它與別的技術進行了對比。編程中,我們建議直接使用asp.net1.1提供的新特征來實現危險排除,而不是采用html編碼的方式。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇坪县| 晋州市| 肇东市| 黄冈市| 图片| 台南市| 琼海市| 东丰县| 永仁县| 湖南省| 荥经县| 兴海县| 镇巴县| 蓬安县| 广州市| 尚志市| 阿勒泰市| 龙南县| 勃利县| 饶阳县| 广河县| 中牟县| 汽车| 滁州市| 新津县| 云林县| 永清县| 宝坻区| 永春县| 湘乡市| 奉新县| 启东市| 视频| 抚州市| 阿勒泰市| 蓬莱市| 斗六市| 广平县| 榆树市| 伊春市| 和林格尔县|