使用" tel:" tag,Gives"从客户端(:)检测到一个潜在危险的Request.Path值。 "错误

时间:2014-11-19 02:45:58

标签: asp.net-mvc html5 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实施吗?我怎么能解决这个问题?

那么&#34; whatsapp:&#34;标签? (see related post

1 个答案:

答案 0 :(得分:1)

看起来你有一个愚蠢的浏览器在点击锚点时要求服务器提供tel: URI。 tel: URI应该使客户端计算机拨打本地电话设备,并且服务器正在警告已经请求了服务器的URI。这可能是一个历史性的攻击载体。

因此,在某个层面上,这可能是一个可忽略的错误。

也可能是浏览器试图“智能”,因为未正确指定电话号码。根据{{​​3}},电话号码必须是有效的RFC 3966或正确形成的“本地地址”,而888-888-8888则不是。+1-888-888-8888。如果您指的是北美手机,则地址正确1(短划线是可选的,加号不是,SHOULD NOT是国家/地区代码)。如果您尝试表示本地地址,图灵可以帮助您理解规范;注意,RFC表示使用本地地址+<country code>

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

所以,在另一个层面上,也许你应该在你的href中放一个tel:。如果一个浏览器以这种方式被破坏,另一个将是。在{{1}}请求返回服务器之前不久,回到日志中以查看同一请求者是否正在请求具有格式错误的URI的页面是一个好主意。如果您可以为请求者获取UserAgent也会很好。很高兴看到这是试图渗透旧服务器还是最终用户使用IE 5或sumptin进行无辜行动。