URL 危险字符串处理

guozhaoyou1 2010-10-15 11:42:55
我有个url
var s='<p></p>'
url:" a.ashx?id=1&postcontext="+s
进入ashx页面提示:A potentially dangerous Request.QueryString value was detected from the client

不认<p></p>这个啊
我用encodeURIComponent(s)
和 encodeURI(s) 都不行

...全文
514 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
guozhaoyou1 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 net_lover 的回复:]
ValidateRequest="false
不能禁止 Request.QueryString的
你可以这样



var s="&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;"
url:" a.ashx?id=1&postcontext="+s
[/Quote]

嗯 这样可行 我用字符串替换了
wuyq11 2010-10-15
  • 打赏
  • 举报
回复
编辑器
<pages validateRequest="false" enableSessionState="true" enableViewState="true"/>
提交的字符串用server.htmldecode("字符串")编码

wwfgu00ing 2010-10-15
  • 打赏
  • 举报
回复
ValidateRequest="false"
边城的刀声 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 guozhaoyou1 的回复:]

引用 4 楼 bclz_vs 的回复:
把页面的验证关了先

验证已经关了
[/Quote]
你怎么关的,不可能吧
guozhaoyou1 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yang441408 的回复:]
传之前用一个特殊字符串把<p></p>替代了 ,取的时候再换过来
[/Quote]
不只可能会出现<p></p>这样的字符啊
<a href=""></a> 等等
都会报错
yangxxxxxx66 2010-10-15
  • 打赏
  • 举报
回复
传之前用一个特殊字符串把<p></p>替代了 ,取的时候再换过来
guozhaoyou1 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bclz_vs 的回复:]
把页面的验证关了先
[/Quote]
验证已经关了
guozhaoyou1 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 linsx1987 的回复:]
这是默认的,url不允许出现特殊的字符。
你可以设置一定的规则,然后在跳转过去的ashx再转一次,就行了
比如
var s='pbiaoji'
url:" a.ashx?id=1&postcontext="+s
在ashx再把pbiaoji转为<p></p>就行了
[/Quote]

问题在于 我根本就不知道哪里会出现类似这种字符
整体是一个html
guozhaoyou1 2010-10-15
  • 打赏
  • 举报
回复
全代码

$("#btn_sumbit").click(
function () {
var title = $("#lable_title").html();
var fck = FCKeditorAPI.GetInstance("FCKeditor1");
var context = fck.GetHTML();
if (!confirm('确定要提交信息?'))
return false;
$.ajax({
type: "post",
url: "../DataHandlers/BBS/Bbs_Edit.aspx?method=postedit&id=" + GetQueryStringValue("id") + "&title=" + encodeURIComponent(title) + "&postcontext=" + encodeURIComponent(context) + "&typeid=" + GetQueryStringValue("typeid"),
success: function (status) {
if (status == 0) {
hiddenFck();
alert('信息已提交 待审核');
}
else
alert('数据错误')
},
error: function () { alert('error') }

});
}
);


..后台处理

protected void Page_Load(object sender, EventArgs e)
{
string method = Request["method"];
if (method != null)
{
string msg = string.Empty;
string typeid = Request["typeid"];

switch (method)
{

case "postedit":
string id = Request["id"];

string title = Request["title"];
string post_context = Request["postcontext"];
Bbs_Posting info = new Bbs_Posting();
info.Title = title;
info.Context = post_context;
info.CreatedBy = int.Parse(EFContext.Current.UserIdentity);
info.Created = DateTime.Now;
if (!id.IsNullOrEmpty())
info.PId = int.Parse(id);
if (!typeid.IsNullOrEmpty())
info.TypeId = int.Parse(typeid);
if (IBbs_ManagersService.EditPost(info))
Response.WriteAndEnd((byte)AjaxResponseCode.Success);
else
Response.WriteAndEnd((byte)AjaxResponseCode.DataError);
break;
default:
break;
}
}
}




进入后台就报错
提示危险字符串

<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeBehind="Bbs_Edit.aspx.cs" Inherits="EFInsurance.Web.DataHandlers.BBS.Bbs_Edit" %>

边城的刀声 2010-10-15
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Study._Default" ValidateRequest="false" %>
sprc_lcl 2010-10-15
  • 打赏
  • 举报
回复
js?

var s='<p></p>'
url:"a.ashx?id=1&postcontext="+escape(s)

边城的刀声 2010-10-15
  • 打赏
  • 举报
回复
把页面的验证关了先
linsx1987 2010-10-15
  • 打赏
  • 举报
回复
这是默认的,url不允许出现特殊的字符。
你可以设置一定的规则,然后在跳转过去的ashx再转一次,就行了
比如
var s='pbiaoji'
url:" a.ashx?id=1&postcontext="+s
在ashx再把pbiaoji转为<p></p>就行了
kkbac 2010-10-15
  • 打赏
  • 举报
回复
encodeURIComponent(s)应该是可以的.

贴全代码.
孟子E章 2010-10-15
  • 打赏
  • 举报
回复
ValidateRequest="false
不能禁止 Request.QueryString的
你可以这样



var s="&lt;p&gt;&lt;/p&gt;"
url:" a.ashx?id=1&postcontext="+s
边城的刀声 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 guozhaoyou1 的回复:]

引用 12 楼 wwfgu00ing 的回复:
ValidateRequest="false"

<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeBehind="Bbs_Edit.aspx.cs" Inherits="EFInsurance.Web.DataHandlers.BBS.Bbs_……
[/Quote]
那你有没有更新发布上传呢?是不是你的页面和你调试的版本不一样呢?
guozhaoyou1 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wwfgu00ing 的回复:]
ValidateRequest="false"
[/Quote]
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeBehind="Bbs_Edit.aspx.cs" Inherits="EFInsurance.Web.DataHandlers.BBS.Bbs_Edit" %>
哥们 我这不是已经写了么

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧