<分区>
我有一个页面 default.aspx
当用户浏览此页面时 -
www.mysite.com/default.aspx/?&emp=1']];alert(2);[['1
弹出一个警告。为了防止这种攻击,我想在浏览器中输入整个字符串,但无法。
[注意:如您所见, ?不必是查询字符串。这是随机字符。如果它是一个查询字符串,我可以在代码中得到它。]
protected void Page_Load(object sender, EventArgs e)
{
string query = HttpContext.Current.Request.ServerVariables["URL"] +
HttpContext.Current.Request.ServerVariables["PATH_INFO"] +
HttpContext.Current.Request.ServerVariables["QUERY_STRING"];
}
在“查询”中,我只得到 /default.aspx/default.aspx/&
如何在地址栏中输入完整的字符串。
更新:
HttpContext.Current.Request.Url.AbsoluteUri
给出 ?&
HttpContext.Current.Request.Url.ToString()
给出 http://mysite/default.aspx/?&
这不是那个问题的重复,因为我的问题有字符,它们不是查询字符串,而且那个问题中的解决方案没有解决我的问题。谢谢。
解决方案: 可能会帮助有类似问题的人。 解决办法是在客户端处理这个问题。我从来不知道#之后的部分没有发送到服务器端。 AmateurProgrammer 提出的很棒的建议和阴影。谢谢