viernes, 29 de diciembre de 2017

Securizando por defecto la implementación de App Engine

En google cloud español publicado en 2017 28 de diciembre por Laurent Picard

Para su aplicación web, una buena práctica es asegurarse de que todas las solicitudes se manejen a través de HTTPS de manera predeterminada. Esto se puede configurar fácilmente para todas las URL en el archivo de despliegue:


Redirección HTTP → HTTPS para Python / Go / PHP


app.yaml



secure: always
redirect_http_response_code: 301


  • La primera línea actualiza todas las solicitudes HTTP a HTTPS con una redirección 302.
  • La segunda línea lo convierte en una redirección 301 permanente (guardable en caché por el navegador y amigable para SEO).

Ejemplo para un sitio estático


...
  handlers:

  - url: /
    static_files: www/index.html
    upload: www/index.html
    secure: always
    redirect_http_response_code: 301

  - url: /
    static_dir: www
    secure: always
    redirect_http_response_code: 301



Redirección HTTP → HTTPS para Java


web.xml


<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTPS redirect</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

  • Esto actualiza todas las solicitudes HTTP a HTTPS con una redirección 302.
  • Al usar las anotaciones de @WebServlet, web.xml es opcional y es posible que deba crearse.

Más información

    App Engine
    301 redirección

Nota

Esta es una forma sencilla de proteger su aplicación web, pero existen otras mejores prácticas más avanzadas, como HSTS. ¿Hay espacio para consejos adicionales?