是否有一种通用的方法来禁止.swfIIS 7 中的示例文件或使用 .Net 上的查询字符串参数?
我们有一个第三方 swf 文件的应用程序,它通过使用某些查询字符串参数调用它来允许 XSS。因此,我们希望以通用方式禁用参数。
我唯一想到的是编写一个处理程序,将文件调用重新路由到不带参数的调用。
您不需要Handler,只需一个新的 IISRewrite规则,它将匹配yourfile.swf?*并将其重写为yourfile.swf(明确地不附加querystring)。
类似的东西(没有检查):
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="strip_querystring" patternSyntax="Wildcard" stopProcessing="true">
<match url="yourfile.swf*" />
<action type="Rewrite" url="yourfile.swf" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
在 Global.asax BeginRequest 事件中试试这个
Private Sub Global_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.BeginRequest
Dim httpContext As HttpContext = httpContext.Current
Dim request As HttpRequest = httpContext.Request
Dim response As HttpResponse = httpContext.Response
If request.QueryString.Count > 0 AndAlso request.Url.LocalPath.EndsWith(".swf", StringComparison.InvariantCultureIgnoreCase) = True Then
response.Redirect(request.Url.LocalPath)
End If
End Sub