J'essaie de réparer mes en-têtes. Je vois deux erreurs lors de la vérification des demandes de réseau que je visite ma page:X-FRAME-OPTIONS est affiché deux fois et X-XSS-PROTECTION est affiché incorrect
1) X-FRAME-OPTIONS: SAMEORIGIN
est présenté deux fois:
Cache-Control:no-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Wed, 04 Oct 2017 12:58:30 GMT
Keep-Alive:timeout=3, max=1000
Server:Apache
Set-Cookie:laravel_session=eifQ%3D%3D; expires=Wed, 04-Oct-2017 14:58:30 GMT; Max-Age=7200; path=/; secure; httponly
Set-Cookie:XSRF-TOKEN=n0%3D; expires=Wed, 04-Oct-2017 14:58:30 GMT; Max-Age=7200; path=/
Transfer-Encoding:chunked
X-CDN:Incapsula
X-Frame-Options:SAMEORIGIN * <-------------- HERE
X-Frame-Options:SAMEORIGIN * <-------------- HERE
X-Iinfo:7-6626704-6651371 NNNN CT(0 0 0) RT(1507121414380 495318) q(0 1 1 -1) r(2 2) U16
X-XSS-Protection:%E2%80%9C1;mode=block%E2%80%9D <-------- Strange Encoding here...
2) Je peux voir l'erreur suivante sur la console pour X-XSS-PROTECTION
:
Erreur lors de l'analyse de l'en-tête X-XSS-Protection: â1; mode = blockâ: attendu 0 ou 1 à la position 0. Les protections par défaut seront appliquées.
J'utilise Laravel 5.0. Le middleware FrameGuard.php
n'est pas actif par défaut depuis Laravel 4.2, mais vous avez la possibilité de l'activer si nécessaire. Quand il est désactivé, je vois les erreurs ci-dessus et je ne peux vraiment pas comprendre pourquoi, alors mon premier était de remplacer ces en-têtes en utilisant réellement ce middleware.
Quand j'ajoute le middleware Illuminate\Http\Middleware\FrameGuard.php
, qui contient le code ci-dessous, rien ne semble changer:
public function handle($request, Closure $next)
{
$response = $next($request);
$response->headers->set('X-XSS-Protection', '1; mode=block');
$response->headers->set('Content-Type','text/html; charset=UTF-8');
$response->headers->set('X-Frame-Options', 'SAMEORIGIN', true);
return $response;
}
J'utilise aussi Mondain qui fournit une authentification Facebook. Y at-il une chance qu'il modifie les en-têtes?
Avez-vous défini la priorité du middleware, de sorte que votre middleware soit appelé le dernier? Et vous pouvez probablement déboguer si les en-têtes corrompus sont déjà là quand vous obtenez la réponse dans votre middleware. Aussi, si j'utilise 'decodeURIComponent ("% E2% 80% 9C1 ") =" "1" '. Cela signifie que l'erreur a probablement été introduite par vous seulement quelque part en utilisant une citation intelligente au lieu d'une citation normale. Avez-vous copié du code sur Internet ou un document Word? Aussi, vous pouvez détecter quel fichier a la citation intelligente en utilisant 'grep -r" "" .' –
Une mise à jour à ce sujet? –