3

我在我的代码隐藏中设置 iframe 的 src,如下所示:

iframe.Attributes.Add("src", string.Format("/page.aspx?a={0}&b={1}", aVal, bVal);

我意识到在 page.aspx 上很少出现以下情况:

Request.QueryString["b"] == null

我开始记录一些请求数据,并且在每天访问该页面的数千次中,数据通常如下所示:

Request.Url: http://www.mydomain.com/page.aspx?a=1&b=2
Request.Referrer: http://www.mydomain.com/referrer/
Request.Querystring: a=1&b=2

每天大约六次,数据将如下所示:

Request.Url: http://www.mydomain.com/page.aspx?a=1&b=2
Request.Referrer: http://www.mydomain.com/referrer/
Request.QueryString: a=1&%3bb=2

您会注意到除了 URL 编码的分号 %3b 出现在查询字符串中之外,所有内容都完全相同。引荐来源网址告诉我 page.aspx 正在被正确访问,并且没有被用户手动输入到浏览器中。此页面也位于仅限会员的安全区域,我确认随机用户会发生这种情况以获取随机内容。我无法重现这一点 - 如果我转到 Request.Url 值,%3b 永远不会出现在查询字符串中,如果我转到 Request.Referrer 值以与客户相同的方式访问内容,%3b 永远不会出现在查询字符串。Request.Referrer 值是加载 page.aspx 的唯一页面。

任何想法 %3b 如何可能进入查询字符串?

4

0 回答 0