martes, 19 de enero de 2016
Hace poco veíamos cómo crear un middleware capaz de realizar transformaciones simples en los encabezados de respuesta de nuestras aplicaciones ASP.NET Core.
Nuestro componente, al que habíamos llamado
HeaderTransformMiddleware
, podíamos añadirlo al pipeline indicándole qué encabezados queríamos modificar y con qué valores (o nulo, si lo que queríamos era eliminar el encabezado). Por ejemplo, con el siguiente código añadíamos el encabezado "X-Author" y suprimíamos "Server":var transforms = new Dictionary<string, string>() { ["X-Author"] = "José M. Aguilar", ["Server"] = null }; app.UseHeaderTransform(transforms);
Tras añadirlo al pipeline, la ejecución de una petición a una aplicación podríamos tener el siguiente resultado en los encabezados:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
X-Author: José M. Aguilar
X-Powered-By: ASP.NET
Content-Length: 8011
El problema viene cuando intentamos eliminar ese "X-Powered-By: ASP.NET" que aparece siempre que ejecutamos nuestra aplicación sobre IIS Express o IIS. En este caso, cualquier intento de eliminarlo usando middlewares será infructuoso.El motivo es que este encabezado no es añadido a la respuesta desde el pipeline; es IIS el que lo añade una vez finaliza el proceso de la petición a través del pipeline. De hecho, si corremos la aplicación usando directamente Kestrel (desde línea de comandos o bien desde Visual Studio) veremos que el "X-Powered-By" no aparece.
Y entonces, ¿no podemos eliminarlo? Pues sí, claro que podemos, aunque no desde ASP.NET sino desde el propio IIS que es el "culpable" de que aparezca ahí.
La forma más sencilla de hacerlo es acudir al archivo web.config presente en la carpeta "wwwroot" o el raíz que hayáis elegido para vuestro sitio web, e introducir la siguiente sección:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <!-- ... Aquí van otras secciones, como la configuración de HTTP platform handler --> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>
De esta forma, el encabezado "X-Powered-By" desaparecerá de las respuestas, eliminando información sobre la tecnología que estáis usando en vuestra aplicación.
Espero que os sea útil :)
Publicado en Variable not found.
Espero que os sea útil :)
Publicado en Variable not found.
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario