On m'a posé une question sur la sécurité du CORS lors de l'entretien, mais je n'ai pas pu y répondre. J'aimerais demander conseil à tout le monde.
CORS définit Access-Control-Allow-Origin côté serveur. S'il n'est pas défini sur *, n'est-il pas vrai que seul le domaine spécifié peut lancer une requête, sinon elle sera interceptée par le navigateur dont je dispose ? vu que l'en-tête http peut être falsifié, mais la configuration manuelle d'Origin sera également bloquée par le navigateur. Où est la vulnérabilité de CORS ? Quelle est la solution ? Merci
https://developer.mozilla.org... Compatibilité des navigateurs
Au contraire, je pense que l'intersection de CORS avec JSONP est une méthode inter-domaines plus sûre et une méthode inter-domaines standard.
Access-Control-Allow-Origin est une liste blanche de domaine qui autorise les requêtes. Seules celles de ce domaine le serveur unifiera les requêtes inter-domaines. Si la liste blanche est définie de manière appropriée, les attaques CSRF peuvent être évitées.
Je pense que cette question peut vous obliger à considérer les problèmes auxquels vous êtes confronté si Access-Control-Allow-Origin est *.
Ceux définis sur * sont généralement des API publiques. Afin d'éviter les requêtes fréquentes ou DDOS, il existe généralement des étapes supplémentaires pour la vérification des clés et la fréquence et le nombre de requêtes sont limités.
De plus, bien que CORS ne transmette pas de cookies par défaut, il peut être autorisé en définissant Access-Control-Allow-Credentials sur true, ce qui peut également entraîner un risque d'attaques CSRF.