asp.net-mvc - 使用 "tel:"标签时,出现 "A potentially dangerous Request.Path value was detected from the client (:). "错误

标签 asp.net-mvc html asp.net-mvc-5

我一直在我的 ELMAH 日志中遇到这个错误。错误状态,

System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (:).

在查看日志中的堆栈跟踪后,似乎发生了错误,因为我正在使用

<a href="tel:8888888888">8888888888888</a>标签。

这不是电话号码的有效 HTML5 实现吗?我该如何解决这个问题?

那么“whatsapp:”标签呢? ( see related post )

最佳答案

看起来你有一个愚蠢的浏览器正在向服务器请求 tel:单击 anchor 时的 URI。 tel: URI 应使客户端机器调用本地电话设备,并且服务器正确警告 URI 是向服务器请求的。这可能是一个历史性的攻击媒介。

因此,在某种程度上,这可能是一个可忽略的错误。

也可能是浏览器试图变得“聪明”,因为没有正确指定电话号码。根据RFC 3966电话号码必须是有效的 E.164 address或格式正确的“本地地址”和 888-888-8888两者都不是。如果您指的是北美电话,那么地址应该是 +1-888-888-8888 (破折号是可选的,加号不是,1 是国家代码)。如果您试图表示本地地址,图灵可能会帮助您理解规范;注意,RFC 说本地地址 SHOULD NOT被使用。

如果智能/愚蠢的浏览器在无法解析 URI 的情况下将 URI 作为新请求传回给服务器,那么它就太聪明/愚蠢了,应该忽略它。

所以,在另一个层面上,也许你应该放一个 +<country code>在你的 href。如果一个浏览器以这种方式被破坏,另一个将是。最好在日志中返回以查看在 tel: 之前不久是否由同一请求者请求具有格式错误的 URI 的页面。请求返回到服务器。如果能得到请求者的UserAgent就好了。最好看看这是渗透旧服务器的尝试还是使用 IE 5 或 sumptin 的最终用户的无辜行为。

关于asp.net-mvc - 使用 "tel:"标签时,出现 "A potentially dangerous Request.Path value was detected from the client (:). "错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008071/

相关文章:

asp.net - 带条件的 Linq 计数

javascript:遍历表格中的所有单元格

c# - 使用属性路由时是否可以更改路由表中路由的顺序?

c# - SignalR - 用于检测客户端是否与集线器断开连接的服务器端方法?

c# - 如何在 Global.asax.cs 文件中全局声明 Filter 属性

c# - 有没有一种简单的方法可以基于 POC Entity Framework 实体(例如 ExtJs)生成 Javascript 模型?

javascript - 如何在 Awesome grid MVC 加载后隐藏第一列

html - 从 Google 表格中的 HTML 文本中提取 href 属性

html - 导航和标题不会居中

javascript - 根据其他下拉菜单选择隐藏/显示下拉菜单