为什么 url 中的 $ 导致 'potentially dangerous Request' 错误

Why is $ in url causing a 'potentially dangerous Request' error

我在 URL 中有一个美元符号,当我单击 link 时它会起作用,如下所示:

www.mysite.com/articles/a-url-with-a-$-symbol

但是,Raygun 显示一些用户收到此页面的错误,$ 替换为 &:

Message: A potentially dangerous Request.Path value was detected from the client (&).

URL: www.mysite.com/articles/a-url-with-a-&

报告的遇到此问题的浏览器包括 Chrome、Firefox、IE 和 Safari。

我知道$是保留字符,但在URL中是允许的。什么会导致浏览器将其更改为 & 并删除剩余的字符?

检查该页面的 link 是否未在任何地方进行 Html 编码。如果是,$ 将被错误地编码为 &dollar,这是 Html 编码版本。

建议:

  1. 检查引荐页面是什么
  2. 查看引用页面的来源,检查 HTML
  3. 您可能会发现它的编码有误

请注意,当您指的是 UrlEncode 时,Html编码也很容易,它会根据目标用途稍微改变输出:Difference between Url Encode and HTML encode

希望对您有所帮助。