是否有一种通用的方法来禁止.swf
IIS 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