我们的Windows/IIS7.5环境配置了UrlScan和IIS请求筛选。我们一直面临一个很长时间的问题。
/MyWeb/TestFW/prweb/Servelt1/ZsvSk3vV8PtgJEa4_x3fiQ[[*/!MyWebApp/webwb/desktop_domainsuffix_1819019784.js!yui_13833664524!desktopwrapper_12997951049!automationscripts_1864420987!ui_jquery_1796787788!desktopwrapper_12997951049!automationscripts_1864420987!ui_jquery_1796787788!注意:我修改了url,但这是结构,如果我放入记事本,它大约有880字节。
UlrScan.ini文件具有请求限制部分的所有默认配置:
MaxAllowedContentLength=30000000
MaxUrl=260
MaxQueryString=2048IIS的请求筛选也已启用,其默认值为:
<security>
<requestFiltering>
<requestLimits
maxAllowedContentLength="30000000"
maxUrl="4096"
maxQueryString="2048"
/>
</requestFiltering>
</security>我运行了一个测试,我在文章顶部提供的URL失败了,出现了403个错误。URL是880字节,所以如果请求过滤优先,它不应该失败,所以我假设执行UrlScan时不考虑IIS的请求限制。
我要求我的IIS管理员提供几次IIS日志,在任何情况下,我只看到403个日志。没有所有其他微软支持文章中提到的404或404.14错误。
我的观察是对的吗?在这种设置下,哪种配置优先?是UrlScan还是IIS的请求过滤?
我很想知道是否有一个使请求过滤优先于UrlScan设置的选项,因为请求筛选是可自定义的,直到应用程序级别,而as UrlScan.ini只能自定义到站点级别。
而且,根据IIS文档,UrlScan特性正在被集成到IIS的请求筛选中,那么为什么urlscan.ini中的最大url 260个字节的默认值与IIS的请求筛选中的4096字节之间存在巨大差异呢?
发布于 2017-10-31 22:43:36
UrlScan在到达IIS请求筛选模块之前停止该请求。理想的和推荐的解决方案是在IIS 7及以上单独使用UrlScan请求过滤模块,IIS7.5中的该模块具有urlscan模块的所有特性,因此没有任何技术理由不退出。但是,由于我们的管理员对此并不满意,所以我们遵循了下面的方法。将urlscan模块中的maxUrl增加到4096,这允许长时间的请求。请求过滤模块可以在默认的网站级别或服务器级别配置,这是全局的,也可以在单独的应用程序级别上配置。因此,默认的网站级别urlScan保留为460个字符,适用于所有应用程序,而在我的应用程序中,请求过滤的maxUrl设置为4096。这样,所有其他50个应用程序都具有多年前默认设置的限制,而我的应用程序有更长的时间来处理冗长的请求。
谢谢。
https://serverfault.com/questions/827085
复制相似问题