Les développeurs ne comprennent pas CORS
Original : Developers don't understand CORS (2019)
Pourquoi c'est important
Illustre l'importance critique de maîtriser CORS pour éviter les failles de sécurité dans les applications web.
Un article de 2019 analyse la mauvaise compréhension de CORS chez les développeurs, illustrée par une vulnérabilité Zoom qui contournait CORS via des images plutôt que des requêtes AJAX standard pour communiquer avec un serveur localhost.
Chris Foster, consultant full stack, observe que de nombreux développeurs web ne comprennent pas le fonctionnement de CORS (Cross-Origin Resource Sharing). Cette lacune s'est illustrée par une vulnérabilité découverte chez Zoom par le chercheur en sécurité Jonathan Leitschuh. Zoom exécutait un serveur web sur localhost:19421 et, au lieu de faire des requêtes AJAX standard, chargeait une image depuis ce serveur local. Les dimensions de l'image codaient les codes d'erreur/statut, contournant ainsi CORS. Foster explique que bien que le navigateur respecte les en-têtes CORS pour localhost, Zoom a cru à tort que CORS était ignoré localement. Une implémentation sécurisée aurait dû utiliser une API REST avec un en-tête Access-Control-Allow-Origin fixé à https://zoom.us, limitant l'accès au seul domaine Zoom. Cette vulnérabilité a permis à n'importe quel site internet de déclencher des opérations dans le client Zoom natif, risquant l'accès non autorisé à la caméra et au microphone. Foster conclut que les serveurs localhost ne doivent jamais fournir un accès privilégié sans comprendre correctement CORS.