如何保护 Elmah 与 ASP.NET 和 IIS 5.1 URL 路由一起使用
这个问题建立在以下问题的基础上: 如何获取 Elmah使用 ASP.NET 和 IIS 5.1 URL 路由
只要 elmah.axd 不在站点的根目录下,建议的解决方案就有效。如果您想保护此处博客中的网站,该怎么办: 安全实施ELMAH 用于即插即用错误记录?
将 elmah.axd 移动到 /admin/elmah.axd 会破坏修复 IIS 5x 通配符映射模块。
我的解决方法只是保护“elmah.axd”而不是“admin”,例如:
<location path="elmah.axd">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
虽然这有效,但我觉得必须有一个更优雅的解决方案。有什么想法吗?
This question builds on the following question:
How to get Elmah working with ASP.NET and IIS 5.1 URL Routing
The solution suggested there worked, as long as elmah.axd is off of the root of the site. What if you want to secure the site as blogged here:
Securely Implement ELMAH For Plug And Play Error Logging?
Moving elmah.axd to /admin/elmah.axd breaks the Fix IIS 5x Wildcard Mapping Module.
My workaround was just to secure "elmah.axd" instead of "admin," like:
<location path="elmah.axd">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Although this works, I feel that there's got to be a more elegant solution. Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您还可以将 elmah.axd 重命名为不太明显的名称。该名称可在您的 web.config 中配置。
You can also rename elmah.axd to something less obvious. The name is configurable in your web.config.
这与我在项目中使用的解决方案相同。任何其他更“优雅”的东西都会更加复杂和不必要。
它很有效而且很简单,如果我是你,我会保持这样:-)
That's the same solution I use in my projects. Anything else more "elegant" would be a lot more complicated and unnecessary.
It does the trick and is simple, I'd keep it like that if I was you :-)
添加到 @Todd Smith 的答案:
如果您想重命名 elmah.axd,您所需要做的就是更改处理程序中的名称。
To add to @Todd Smith's answer:
If you want to rename your elmah.axd, all you need to do is to change the name in the handler.