我有一个旧版应用,在 IIS6 下运行第三方电子商务系统。一些垃圾邮件发送者最近发现商店的某个表单中存在严重的安全漏洞,这使得他们能够从我们的系统发送任意电子邮件。不幸的是,这个商店“功能”内置在 default.aspx 页面的后台代码中,我无法在不关闭商店的情况下禁用它。
如何使用给定的查询字符串参数过滤掉 URL 请求?例如,我想过滤掉以下请求:
http://www.mysite.com/store/?id=SendSpam
基于“SendSpam”字符串。
答案1
第一个解决方案:使用 isapi 过滤器模拟 Apache 的 ModRewrite for IIS。搜索“mod_rewrite iis”。
另一种方法是在 .net 中编写一个 httpmodule 来实现输入过滤器,然后在 web.config 中的 .net 应用程序中加载它。
请注意,这些都不允许您更改查询字符串参数,但它们可以让您在应用程序被访问之前进行重定向或 403 Forbidden 响应。
答案2
或者有微软的 urlscan,它应该能够完成上面描述的操作。