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 de jyhem