当IIS在URL中看到单词集时会发生什么?

当IIS在URL中看到单词集时会发生什么?,iis,asp-classic,Iis,Asp Classic,有一个奇怪的问题-我们有一个页面使用查询字符串来获取一些信息,这个查询字符串恰好包含单词set。发生这种情况时,页面返回406错误(客户端浏览器不接受请求页面的MIME类型。) URL看起来像example.com/folder/file.asp?variable=sunset boulevard。如果我将空格改为%20,它仍然返回406 在运行IIS 5.x的本地计算机上不会发生这种情况,在运行IIS 7.x的测试服务器上不会发生这种情况,只有在通过SSL运行IIS 7.x的生产服务器上才会发

有一个奇怪的问题-我们有一个页面使用查询字符串来获取一些信息,这个查询字符串恰好包含单词
set
。发生这种情况时,页面返回406错误(
客户端浏览器不接受请求页面的MIME类型。

URL看起来像
example.com/folder/file.asp?variable=sunset boulevard
。如果我将空格改为
%20
,它仍然返回406

在运行IIS 5.x的本地计算机上不会发生这种情况,在运行IIS 7.x的测试服务器上不会发生这种情况,只有在通过SSL运行IIS 7.x的生产服务器上才会发生这种情况。但是请注意,本地计算机上通过SSL的自签名证书仍然不会产生错误


所以我的问题是,URL中的
set
关键字告诉IIS做什么?有没有一种简单的方法来避免这种情况发生?如果可能,我希望避免将空格更改为其他字符。

您的服务器是否安装了其他筛选器?闻起来像是设计用于防止特定类型攻击的攻击过滤器的工作。

您已经确定字符序列
集的存在,这就是问题所在?它甚至不是“设置”这个词,因为这个词实际上是“日落”。您的服务器是否安装了其他筛选器?闻起来像是一个激进的过滤器设计来防止某些类型的攻击。它确实是一个单词
set
,后面有一个空格
setstuff
正常,
set
正常,
set stuff
不正常。我必须与服务器人员确认,但我高度怀疑他们是否设置了任何额外的过滤器。@AnthonyWJones结果表明,默认情况下,SecureIIS在查询字符串中抓取
set
。如果你想发表你的评论,我很乐意为你做标记。