This document is for CakePHP's development version, which can be significantly different from previous releases.
You may want to read current stable release documentation instead.

Middleware HTTPS Enforcer

Si vous voulez que votre application soit accessible uniquement par des connexions HTTPS, vous pouvez utiliser le HttpsEnforcerMiddleware:

use Cake\Http\Middleware\HttpsEnforcerMiddleware;

// Toujours soulever une exception et ne jamais rediriger.
$https = new HttpsEnforcerMiddleware([
    'redirect' => false,
]);

// Envoyer un code de statut 302 en cas de redirection
$https = new HttpsEnforcerMiddleware([
    'redirect' => true,
    'statusCode' => 302,
]);

// Envoyer des headers supplémentaires dans la réponse de redirection.
$https = new HttpsEnforcerMiddleware([
    'headers' => ['X-Https-Upgrade' => 1],
]);

// Désactiver le HTTPs forcé quand ``debug`` est activé.
$https = new HttpsEnforcerMiddleware([
    'disableOnDebug' => true,
]);

À la réception d’une requête non-HTTP qui n’utilise pas GET, un BadRequestException sera soulevée.

Ajouter Strict-Transport-Security

Si votre application nécessite du SSL, une bonne idée serait de définir le header Strict-Transport-Security. La valeur de ce header est mise en cache par le navigateur, et informe les navigateurs qu’ils devraient toujours se connecter en HTTPS. Vous pouvez configurer ce header avec l’option hsts:

   $https = new HttpsEnforcerMiddleware([
       'hsts' => [
           // La durée pendant laquelle la valeur du header devrait être mise en cache
           'maxAge' => 60 * 60 * 24 * 365,
           // cette politique s'applique-t-elle aux sous-domaines ?
           'includeSubdomains' => true,
           // La valeur de ce header devrait-elle être mise en cache dans le service
           // HSTS preload de Google ? Bien que ne faisant pas partie de la spécification, il est souvent implémenté.
           'preload' => true,
       ],
   ]);

.. meta::
    :title lang=fr: Middleware HTTPS Enforcer