【问题标题】:ASP.NET MVC4... is "BIN" a reserved keyword?ASP.NET MVC4 ...“BIN”是保留关键字吗?
【发布时间】:2014-04-12 12:44:27
【问题描述】:

我有一个基于股票代码返回数据的股票查询应用程序。

基本上,AJAX 调用转到~/Stocks/GetStockData/{id},其中{id} 是股票代码。

这很好用……一般来说。今天我发现有BIN符号的股票“Progressive Waste Solutions Ltd.”爆炸了。查看浏览器中的返回数据,我看到它为这个符号返回了 404。

我突然想到 BIN 可能是一个保留字,要求一些二进制文件或其他东西。是这样吗?我如何不费吹灰之力地解决这个问题?是否还有其他关键字也会导致此问题?

更新

根据 Artyom Neustroev,这可能是一个保留关键字,并且可以防止路由到。他引用了一篇文章,该文章引用了一个网站,该网站说明了解决此问题的方法是在配置文件中添加以下配置设置:

<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    <!-- ... your other settings ... -->
  </system.web>
</configuration>

...这让我更进一步。在运行我的网站后,ajax 调用返回了 404.8 错误:

HTTP Error 404.8 - Not Found
The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section.

好的,这实际上是有道理的。路由设置是为了防止有人进入我的bin 目录,我赞成这种预防措施。

所以我想知道如果有明确的路线,如何告诉一组特定的方法获得BINCONFIG(理论上)这样的东西是可以的?

【问题讨论】:

  • 我强烈怀疑这一点。您只是在传输一个字符串值,不应将其解释为其他内容。您是否收到任何可以帮助我们的内部错误消息?
  • 这其实是可以的。看到这个问题:stackoverflow.com/questions/6194624/…
  • 是的。它与保护内部 ASP.NET 文件(如 web.config 和 Bin 文件夹)的安全过滤器有关。根据 Phil Haack 的链接博客文章,使用宽松的 URL 规则应该是一种解决方法。
  • 这有什么来源吗?以上来源和this one仅指COM1-9LPT1-9AUXPRTNULCON的列表。
  • 嗯...添加该配置可以让我进入HTTP Error 404.8 - Not Found The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section.

标签: c# asp.net-mvc asp.net-mvc-4 iis asp.net-routing


【解决方案1】:

所以这里有一个概要:

路由机制考虑到隐藏的目录和文件(如 web.config、/bin 等)并将它们隐藏起来。对于其中一些,规则可以放宽一点,因为它们是在代码中处理的。这些“关键字”是:CONCOM1COM2COM3COM4LPT1LPT2AUXPRN 和 @9876543133这些实际上可以通过更改您的 web.config 文件来引用:

<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    <!-- ... your other settings ... -->
  </system.web>
</configuration>

然而,其他类型的隐藏关键字不在代码中管理,而是在 IIS 中管理。您有两种选择。您可以按照 Artyom Neustroev(他链接到 this)的建议修改 IIS 设置,这让我觉得有点危险,但我希望它会起作用。

我选择的另一个选项是将我的 AJAX 调用更改为 POST 方法。那么值不在URL中,整个问题就被规避了。

感谢所有让我走到这一步的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多