亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

從客戶端檢測到有潛在危險的Request.Form值的asp.net代碼

2024-07-10 13:20:32
字體:
來源:轉載
供稿:網友
1、web.config文檔<system.web>后面加入這一句:

復制代碼 代碼如下:


<pages validaterequest="false"/>


示例:
XML/HTML

復制代碼 代碼如下:


<?xml version="1.0" encoding="gb2312" ?>
<configuration>
<system.web>
<pages validaterequest="false"/>
</system.web>
</configuration>


2、在*.aspx文檔頭的page中加入validaterequest="false",示例如下:

復制代碼 代碼如下:


<%@ page validaterequest="false" language="c#" codebehind="index.aspx.cs" autoeventwireup="false" inherits="mybbs.webform1" %>


其實這樣做是不正確的,會給程序安全帶來風險。
  ASP.Net 1.1后引入了對提交表單自動檢查是否存在XSS(跨站腳本攻擊)的能力。當用戶試圖用之類的輸入影響頁面返回結果的時候,ASP.Net的引擎會引發一個 HttpRequestValidationExceptioin。這是ASP.Net提供的一個很重要的安全特性。因為很多程序員對安全沒有概念,甚至都不知道XSS這種攻擊的存在,知道主動去防護的就更少了。ASP.Net在這一點上做到默認安全。這樣讓對安全不是很了解的程序員依舊可以寫出有一定安全防護能力的網站。
  但是,當我Google搜索 HttpRequestValidationException 或者 "A potentially dangerous Request.Form value was detected from the client"的時候,驚奇的發現大部分人給出的解決方案竟然是在ASP.Net頁面描述中通過設置 validateRequest=false 來禁用這個特性,而不去關心那個程序員的網站是否真的不需要這個特性??吹梦疫@叫一個膽戰心驚。安全意識應該時時刻刻在每一個程序員的心里,不管你對安全的概念了解多少,一個主動的意識在腦子里,你的站點就會安全很多。
  為什么很多程序員想要禁止 validateRequest 呢?有一部分是真的需要用戶輸入"<>"之類的字符。這就不必說了。還有一部分其實并不是用戶允許輸入那些容易引起XSS的字符,而是討厭這種報錯的形式,畢竟一大段英文加上一個ASP.Net典型異常錯誤信息,顯得這個站點出錯了,而不是用戶輸入了非法的字符,可是自己又不知道怎么不讓它報錯,自己來處理報錯。
  對于希望很好的處理這個錯誤信息,而不使用默認ASP.Net異常報錯信息的程序員們,你們不要禁用validateRequest=false。
  正確的做法是在你當前頁面添加Page_Error()函數,來捕獲所有頁面處理過程中發生的而沒有處理的異常。然后給用戶一個合法的報錯信息。如果當前頁面沒有Page_Error(),這個異常將會送到Global.asax的Application_Error()來處理,你也可以在那里寫通用的異常報錯處理函數。如果兩個地方都沒有寫異常處理函數,才會顯示這個默認的報錯頁面呢。
  舉例而言,處理這個異常其實只需要很簡短的一小段代碼就夠了。在頁面的Code-behind頁面中加入這么一段代碼:

復制代碼 代碼如下:


protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (HttpContext.Current.Server.GetLastError() is HttpRequestValidationException)
{
HttpContext.Current.Response.Write("請輸入合法的字符串【<a href=/"javascript:history.back(0);/">返回</a>】");
HttpContext.Current.Server.ClearError();
}
}


這樣這個程序就可以截獲 HttpRequestValidationException 異常,而且可以按照程序員的意愿返回一個合理的報錯信息。
  這段代碼很簡單,所以我希望所有不是真的要允許用戶輸入之類字符的朋友,千萬不要隨意的禁止這個安全特性,如果只是需要異常處理,那么請用類似于上面的代碼來處理即可。
  而對于那些通過 明確禁止了這個特性的程序員,自己一定要明白自己在做什么,而且一定要自己手動的檢查必須過濾的字符串,否則你的站點很容易引發跨站腳本攻擊。
  關于存在Rich Text Editor的頁面應該如何處理?
  如果頁面有富文本編輯器的控件的,那么必然會導致有類的HTML標簽提交回來。在這種情況下,我們不得不將validateRequest="false"。那么安全性怎么處理?如何在這種情況下最大限度的預防跨站腳本攻擊呢?
  根據微軟的建議,我們應該采取安全上稱為“默認禁止,顯式允許”的策略。
  首先,我們將輸入字符串用 HttpUtility.HtmlEncode()來編碼,將其中的HTML標簽徹底禁止。
  然后,我們再對我們所感興趣的、并且是安全標簽,通過Replace()進行替換。比如,我們希望有""標簽,那么我們就將""顯式的替換回""。
void submitBtn_Click(object sender, EventArgs e)
{
//將輸入字符串編碼,這樣所有的HTML標簽都失效了。
StringBuilder sb = new StringBuilder(HttpUtility.HtmlEncode(htmlInputTxt.Text));
//然后我們選擇性的允許<b> 和 <i>
sb.Replace("<b>", "<b>");
sb.Replace("</b>", "</b>");
sb.Replace("<i>", "<i>");
sb.Replace("</i>", "</i>");
Response.Write(sb.ToString());
}
這樣我們即允許了部分HTML標簽,又禁止了危險的標簽。
根據微軟提供的建議,我們要慎重允許下列HTML標簽,因為這些HTML標簽都是有可能導致跨站腳本攻擊的。
<applet>
<body>
<embed>
<frame>
<script>
<frameset>
<html>
<iframe>
<img>
<style>
<layer>
<link>
<ilayer>
<meta>
<object>
可能這里最讓人不能理解的是<img>。但是,看過下列代碼后,就應該明白其危險性了。
<img src="javascript:alert('hello');">
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲亚洲妇女av| 日韩免费不卡av| 欧美日韩美女视频| 国产精品亚洲一区二区三区| 亚洲精品网址在线观看| 日本韩国在线不卡| 欧美一级在线播放| 成人黄色午夜影院| 久久久久中文字幕2018| 亚洲精品免费av| 91视频国产精品| 亚洲专区中文字幕| 欧美精品福利在线| 黄色成人在线免费| 成人免费自拍视频| 国产福利视频一区二区| 国产综合香蕉五月婷在线| 国产小视频国产精品| 粉嫩av一区二区三区免费野| 国产成人精品国内自产拍免费看| 国产精品久久久久久婷婷天堂| 日本韩国在线不卡| 亚洲精品欧美日韩专区| 美女视频久久黄| 成人亚洲综合色就1024| 91青草视频久久| 久久久国产视频| 日韩专区中文字幕| 日本19禁啪啪免费观看www| 精品久久久久久国产91| 久久人人爽人人爽人人片av高请| 精品无人区乱码1区2区3区在线| 久久久久久香蕉网| 中文字幕国产亚洲2019| 国产精品美女免费看| 日韩中文字幕在线视频播放| 国产精品wwwwww| 亚洲综合色激情五月| 国产97在线亚洲| 成人免费在线视频网址| 国产欧美日韩丝袜精品一区| 久久网福利资源网站| 全色精品综合影院| 欧美性黄网官网| 成人精品视频99在线观看免费| 亚洲丝袜av一区| 91九色蝌蚪国产| 色妞色视频一区二区三区四区| 日韩中文字幕在线观看| 91在线直播亚洲| 亚洲欧美制服综合另类| 欧美国产日韩一区二区在线观看| 91在线观看免费高清完整版在线观看| 亚洲欧美制服综合另类| 日韩av在线网站| 国产精品永久在线| 精品国产自在精品国产浪潮| 亚洲最大福利视频| 色综合五月天导航| 欧美孕妇与黑人孕交| 国产精品美女免费视频| 国产精品福利网站| 国产精品稀缺呦系列在线| 韩国美女主播一区| 国产在线视频欧美| 久久久久久久999精品视频| 欧美天堂在线观看| 国产成人精品电影| 国产精品久久久久久久午夜| 久久精品99久久久香蕉| 一区二区三区视频免费| 91国产精品电影| 亚洲欧美中文日韩v在线观看| 欧美大胆a视频| 国产精品久久久久久久久男| 麻豆国产va免费精品高清在线| 日韩天堂在线视频| 国产精品7m视频| 热99精品里视频精品| 亚洲精品视频免费| 久久精品一区中文字幕| 亚洲第一av在线| 亚洲国产精品va| 国产一区二区三区视频在线观看| 亚洲精品少妇网址| 日韩经典一区二区三区| 国产91热爆ts人妖在线| 在线视频免费一区二区| 亚洲第一国产精品| 欧美在线免费视频| 欧美成人黑人xx视频免费观看| 久久国产精品电影| 成人福利在线观看| 日韩精品视频免费在线观看| 亚洲国产又黄又爽女人高潮的| 日韩最新中文字幕电影免费看| 亚洲人成在线一二| 亚洲人午夜精品| 亚洲美女在线观看| 91精品国产91久久久久久吃药| 精品少妇v888av| 欧美性猛交丰臀xxxxx网站| 亚洲成人动漫在线播放| 国产精品一区二区久久国产| 亚洲一区亚洲二区亚洲三区| 成人网址在线观看| 欧美一级在线播放| 成人动漫网站在线观看| 欧洲美女7788成人免费视频| 国产精品久久91| 国产欧美婷婷中文| 久久久精品一区二区| 国外成人在线播放| 亚洲欧洲成视频免费观看| 欧美丰满老妇厨房牲生活| 国产精品香蕉av| 久久精品福利视频| 国产91网红主播在线观看| 中文字幕日韩欧美精品在线观看| 日韩乱码在线视频| 成人网在线观看| 亚洲午夜国产成人av电影男同| 91沈先生作品| 欧美午夜精品久久久久久人妖| 国外成人免费在线播放| 国产精品久久久久久久av大片| 欧美与黑人午夜性猛交久久久| 国产一区二区日韩| 亚州国产精品久久久| 亚洲精品美女在线观看播放| 91亚洲国产成人久久精品网站| 国产精品成av人在线视午夜片| 俺也去精品视频在线观看| 国产精品白丝jk喷水视频一区| 国产精品一区二区三区久久| 伊人久久久久久久久久久久久| 日韩av123| 亚洲精品免费在线视频| 欧美一区二区三区艳史| 91久久久久久| 日韩精品中文字幕在线播放| 伊人久久久久久久久久| 国产精品免费一区二区三区都可以| 中文字幕日本精品| 91av国产在线| 亚洲第一在线视频| 久久久久国产精品免费| 大胆人体色综合| 亚洲精品日韩在线| 亚洲欧美制服综合另类| 免费91麻豆精品国产自产在线观看| 国产69精品99久久久久久宅男| 国产精品久久9| 久久九九有精品国产23| 亚洲视频一区二区| 日韩av手机在线看| 91亚洲国产成人久久精品网站| 日韩理论片久久| 最好看的2019的中文字幕视频| 亚洲综合大片69999| 自拍偷拍亚洲在线| 成人自拍性视频| 亚洲福利在线看| 久久久久免费视频|