XML�based Web services exchange XML documents to communicate. This exchange can occur across any type of application-layer protocol. By default, ASP.NET Web services are exposed through four different protocols: HttpSoap, HttpPost, HttpGet, and Documentation. In many cases, only a subset of these four protocols is required. For example, Web services typically use only the HttpSoap protocol for communications. In these circumstances, if you remove the unused protocols, you increase the security of the application by decreasing the attack surface. This article describes how to disable Web services protocols that are used to communicate with an ASP.NET application.
Disable Web Services Protocols
To disable a Web Services protocol for an ASP.NET application, follow these steps:- Open the Web.config file in a text editor (such as Notepad). The Web.config file is located in the root folder of you Web service application.
- Add the <webServices> configuration element under the <system.web> element.
- In the <webServices> element, add the <protocols> configuration element.
- In the <protocols> element, add a <remove> element for each default protocol that you want to disable.
- In each of the <remove> elements that you created in step 4, set the name attribute to the name of a protocol that you want to disable.
- By default, the HttpPost, HttpSoap, HttpGet, and
Documentation protocols are enabled. The following example of the
<webServices> configuration element disables all default protocols except
HttpSoap:
<webServices> <protocols> <remove name="HttpPost"/> <remove name="HttpGet"/> <remove name="Documentation"/> </protocols> </webServices>
- Save the Web.config file. The Web service will restart automatically, and will return error messages for all requests that are in disabled protocols.