How to limit the header size of the HTTP transmission that IIS accepts from a client in Windows 2000 (310156)



The information in this article applies to:

  • Microsoft Internet Information Services 5.0

This article was previously published under Q310156
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry

IN THIS TASK

SUMMARY

This article describes how to limit the header size of the HTTP transmission that Microsoft Internet Information Services (IIS) will accept from a client. Recent exploits perpetrated against Microsoft Internet Information Server 4.0 and IIS 5.0 depend on the ability to send large amounts of data in the HTTP application-layer header. Examples of such exploits include the Code Red versions I and II worms. The abnormally large amount of information that is contained in the application-layer header may cause a buffer overflow and could potentially compromise the server.

Internet Information Server 4.0 and IIS 5.0 support a method to control the maximum size of the request line and header fields that are accepted by the Internet Information Server and IIS World Wide Web service.

The MaxClientRequestBuffer registry entry is used to limit the amount of data that is accepted in the Internet Information Server and IIS request buffer. This data includes all the information from the first byte of the request through the last byte before the body of the request. This includes the method, the URL, additional path information, the query string, the HTTP version, and all headers and characters that delimit all portions of the request.

The default client request buffer size for Internet Information Server 4.0 is 2 megabytes (MB). The default client request buffer for IIS 5.0 is 128 kilobytes (KB). The default client request buffer for IIS 5.0 Service Pack 4 (SP4) is 16 KB. IIS request buffer size may become the limiting factor for Kerberos authentication with large tokens if users are members of many groups. If a user does have a token that is too large for the IIS server, the client will receive the following in the client's Web browser:
HTTP 400 Bad Request (The data is invalid)
For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

277741 Internet Explorer Logon Fails Due to an Insufficient Buffer for Kerberos

280830 Kerberos Authentication May Not Work If User Is a Member of Many Groups

back to the top

Adding the MaxClientRequestBuffer Value to the Registry

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

NOTE: See the "Troubleshooting" section of this article before you follow these steps.
  1. Click Start, click Run, type regedt32, and then press ENTER.
  2. In Registry Editor, locate and click the following key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters

  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type MaxClientRequestBuffer over the New Value #1 entry.
  5. Double-click the MaxClientRequestBuffer value.
  6. In the Edit DWORD Value dialog box, click Decimal in the Base area. In the Value data box, type the byte value that you want to allow to be buffered. Click OK.
  7. Quit Registry Editor.
  8. Restart the Web Publishing service for the changes to take effect.
back to the top

Troubleshooting


The limit that is set by the MaxClientRequestBuffer registry value is not extremely precise. You may need to experiment with different values to get the results you require. This is especially important because this setting can effect ISAPI filters.

back to the top


REFERENCES

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

255574 Internet Information Services Reports an Error with Filters That Use the SF_STATUS_REQ_READ_NEXT Return Value

back to the top

Modification Type:MinorLast Reviewed:3/11/2005
Keywords:kbHOWTOmaster KB310156 kbAudITPro