【发布时间】:2018-05-22 20:06:20
【问题描述】:
我们有一个带有以下资源 url 的 web api。
http://www.example.com/book/bookid/name/bookname
现在有一些书籍包含带有 & 符号的名称,当请求此类名称时,我们会收到以下错误
使用的网址:
http://www.example.com/book/123/name/ban&ban
错误:检测到来自客户端 (&) 的潜在危险 Request.Path 值
我们尝试为 & 传递或使用编码值,即 %26 并得到相同的错误。
使用的网址:
http://www.example.com/book/123/name/ban%26ban
错误:检测到来自客户端 (&) 的潜在危险 Request.Path 值
现在,当我在 httpruntime 元素的 web.config 中添加 requestPathInvalidCharacters="" 属性时,它开始对上述两个 URL 都正常工作。但是,当我阅读不同的文章时,据说使用 requestPathInvalidCharacters="" 属性不是一个好习惯。
另外,由于生产中有很多书名带有“&”和不同的特殊字符,我们不能避免为书名发送“&”符号,有没有好的方法来处理这个问题?
【问题讨论】:
-
也许您需要稍微修改您的客户端逻辑以确保编码的 URL 不会触发误报。理想情况下,它不应该。
-
怎么做?
-
既然已经有了 bookid,为什么还要在 Url 中输入书名?
标签: c# asp.net-web-api