| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 436 人关注过本帖
标题:[求助]请教一个简单的问题
只看楼主 加入收藏
长风大侠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-25
收藏
 问题点数:0 回复次数:7 
[求助]请教一个简单的问题

我有一个输入数据到数据库的文件,但当输入内容含有<head>或<body><.........>符号时就出错,请问是怎么回事?
部分代码如下:
neirong2=Server.HtmlEncode(neirong.Text);
String zh="";
String tmpstr="";
for (int i=0; i<neirong2.Length;i++)
{
zh=neirong2.Substring(i,1);
if (zh==" ") { zh=" "; }
if (zh==" ") { zh="&nbsp;"; }
if (zh=="\n" ) { zh=" <br> ";}
if (zh=="<" ) { zh=" &it; ";}
if (zh==">" ) { zh=" &gt; ";}

tmpstr=tmpstr+zh;
}
neirong2=tmpstr;
但是当输入时就输不入
出显以下错误:那位大侠知道那里出错了?

从客户端(addcategry1:neirong="<HEAD>")中检测到有潜在危险的 Request.Form 值。

说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。

异常详细信息: System.Web.HttpRequestValidationException: 从客户端(addcategry1:neirong="<HEAD>")中检测到有潜在危险的 Request.Form 值。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[HttpRequestValidationException (0x80004005): 从客户端(addcategry1:neirong="<HEAD>")中检测到有潜在危险的 Request.Form 值。]
System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +240
System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +99
System.Web.HttpRequest.get_Form() +121
System.Web.UI.Page.GetCollectionBasedOnMethod() +70
System.Web.UI.Page.DeterminePostBackMode() +128
System.Web.UI.Page.ProcessRequestMain() +2081
System.Web.UI.Page.ProcessRequest() +217
System.Web.UI.Page.ProcessRequest(HttpContext context) +18
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +179
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
搜索更多相关主题的帖子: 数据库 
2006-06-11 23:13
lanjinbo
Rank: 1
等 级:新手上路
威 望:1
帖 子:109
专家分:0
注 册:2006-4-14
收藏
得分:0 

错误就出在可以输入HTML代码,而浏览器可以运行HTML代码。这样可以让别人利用这种涉漏洞对你的网站进行“注入式”攻击。
你最好把HTML代码先转换成其它符号,再存入数据库。


天蓝蓝,水蓝蓝,扬帆远航,有鱼儿作伴 风嘻嘻,云嘻嘻,共渡幸福彼岸
2006-06-12 01:08
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 
在web.config的&lt;system.web&gt;里加上&lt;pages validateRequest = "false" /&gt;就行了。

欢迎光临我的博客: http://smallfools.blog./default.html
2006-06-12 08:33
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 

但是注意如果加上这个设置以后,服务器不再检查你输入的任何文本内容了,所以自己在考虑安全问题上权衡考虑,如果是只有几个页面需要这样的话,在页面的page指令中进行设置也可以


铲铲是也
2006-06-12 10:59
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 
嗯,说得也是。

欢迎光临我的博客: http://smallfools.blog./default.html
2006-06-12 12:31
zfyhome
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2005-12-21
收藏
得分:0 
长进了不少东西
2006-06-14 17:35
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
,学习的知道,捡到宝啦

让我们风风火火的过一生,别平平淡淡过一年。
2006-06-14 18:33
长风大侠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-25
收藏
得分:0 
哦!知道了!谢谢各位!
2006-06-15 03:14
快速回复:[求助]请教一个简单的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013194 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved