04-18-05 10:53 PM
Hi Dave and bertelmonster,
First off, a user-agent header is not required in any version of HTTP, so
http.sys will not reject a request based on that.
In looking at the header data below, I see a properly formed connection
header, but the line "Host=myweb.com:80" will cause http.sys to fail to find
a host header. Since a host header is required for HTTP/1.1, this could
cause a 400 response. The correct value of the header should be "Host:
myweb.com:80".
Also, assuming that this header is just a typo, there could be something
outside of just headers that's making the request invalid. It would be
necessary to see a capture of the actual raw request in its entirely to say
for sure what's wrong.
Finally regarding filters, in Worker Process Isolation Mode, David is
correct that you cannot intercept the request. UrlScan and other filters
work by looking at the request after it's been parsed by http.sys. In IIS 5
Isolation Mode, though, you can write a read raw data filter that sees the
raw data stream before http.sys parses it. It would be possible to put IIS
into this mode an use such a filter to fix the data stream. This would
probably not be an ideal solution, as you would give up the benefits of the
new IIS 6 process model. If it's true that the device is really sending a
malformed host header, then that would be a very serious defect in the
device and you should definitely contact the vendor.
Thank you,
-Wade A. Hilmo,
-Microsoft
"Dave" <noone@nowhere.com> wrote in message
news:O6eL3V1QFHA.1476@TK2MSFTNGP09.phx.gbl...
> surely you can put a filter before http.sys. isn't that the basis of how
> urlscan and other isapi filters work? if nothing else send iis to a
> different port and write your own proxy to listen on port 80 and fix up
> requests before forwarding them on to iis.
>
> "bertelmonster" <bertelmonster.1nmv52@mail.webservertalk.com> wrote in
> message news:bertelmonster.1nmv52@mail.webservertalk.com...
>
>
[ Post a follow-up to this message ]
|