Outils pour utilisateurs

Outils du site


cr:travaux-2019-04-25

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

cr:travaux-2019-04-25 [2019/04/25 22:40] (Version actuelle)
jyhem créée
Ligne 1: Ligne 1:
 +====== Problème CORS ======
 +
 +
 +Sur https://​vps.arn-fai.net/​
 +<​code>​Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead[Learn More] fquery.min.js:​2:​21
 +Source map error: request failed with status 404
 +Resource URL: https://​arn-fai.net/​nav/​lib/​jquery/​fquery.min.js
 +Source Map URL: fQuery-1.10.2.min.map[Learn More]
 +Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://​arn-fai.net/​nav/​nav.json. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).[Learn More]
 +</​code>​
 +
 +
 +Lecture : [[https://​developer.mozilla.org/​en-US/​docs/​Web/​HTTP/​CORS/​Errors/​CORSMissingAllowOrigin]]
 +Il semblerait que ça dise de configurer arn-fai.net
 +Et de mettre à jour:
 +''​Header set Access-Control-Allow-Origin '​origin-list'​ ''​
 +
 +===== Proof of concept =====
 +
 +
 +Je teste la ligne 
 +''​Header set Access-Control-Allow-Origin "​*"​
 +
 +''​dans ''/​var/​www/​site-drupal/​.htaccess''​
 +
 +Résultat: tout le site arn-fai.net est en erreur 500 !
 +
 +Pourquoi ?
 +
 +Je change en :
 +<​code><​IfModule mod_headers.c>​
 +Header set Access-Control-Allow-Origin "​*"​
 +</​IfModule></​code>​
 +
 +Et le site remarche.
 +
 +Conclusion: le module ''​mod_headers.c''​ manque !
 +
 +Je rajoute :
 +<​code>​root@web:/​home/​jmlibs#​ a2enmod headers
 +root@web:/​home/​jmlibs#​ systemctl restart apache2</​code>​
 +
 +Et https://​vps.arn-fai.net/​ fonctionne toujours (sans erreur 500)
 +
 +et https://​vps.arn-fai.net/​ a bien le menu qui s'​affiche
 +
 +avec les infos suivantes :
 +<​code>​Source map error: request failed with status 404
 +Resource URL: https://​arn-fai.net/​nav/​lib/​jquery/​fquery.min.js
 +Source Map URL: fQuery-1.10.2.min.map[Learn More]
 +SecurityError:​ The operation is insecure. nav.js:​169</​code>​
 +
 +===== Solution =====
 +
 +Maintenant, on va faire une config sérieuse.
 +
 +==== Restreindre au site vpn.arn-fai.net ====
 +
 +Si je mets 
 +''​Header set Access-Control-Allow-Origin "​https://​vps.arn-fai.net"​ ''​
 +
 +C'est bon pour https://​vps.arn-fai.net/​ mais pas pour http://​vps.arn-fai.net/​
 +
 +Alors je teste
 +<​code><​IfModule mod_headers.c>​
 +SetEnvIf Origin "​https://​vps.arn-fai.net$"​ AccessControlAllowOrigin=$0
 +Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
 +#Header set Access-Control-Allow-Origin "​https://​vps.arn-fai.net"​
 +</​IfModule></​code>​
 +
 +Et c'est pareil
 +<​code><​IfModule mod_headers.c>​
 +SetEnvIf Origin "​http(s)?://​vps.arn-fai.net$"​ AccessControlAllowOrigin=$0
 +Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
 +#Header set Access-Control-Allow-Origin "​https://​vps.arn-fai.net"​
 +</​IfModule></​code>​
 +
 +C'est bon pour les deux !
 +
 +==== Restreindre aux fichiers ressources ====
 +
 +<​code><​FilesMatch "​\.(js|json)$">​
 +  <​IfModule mod_headers.c>​
 +    SetEnvIf Origin "​http(s)?://​vps.arn-fai.net$"​ AccessControlAllowOrigin=$0
 +    Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
 +    #Header set Access-Control-Allow-Origin "​https://​vps.arn-fai.net"​
 +  </​IfModule>​
 +</​FilesMatch></​code>​
 +
 +Et c'est bon.
 +
 +Solution finale
 +
 +Je mets ça dans ''/​etc/​apache2/​sites-enabled/​arn-fai.net.conf''​ au lieu du .htaccess
 +<​code>​apache2ctl restart</​code>​
 +
 +Et c'est bon.
  
cr/travaux-2019-04-25.txt · Dernière modification: 2019/04/25 22:40 par jyhem