Cet article, évalué par des pairs par Panayiotis "PVGR" Velisarakos (avec merci à tous les examinateurs de pairs SitePoint!), Explore le partage de ressources croisées (CORS), une API HTML5 permettant aux sites Web d'accès auparavant restreint des ressources externes restreintes. CORS détend la politique d'origine homosexuelle, permettant des demandes à différents domaines. Par exemple, avant CORS, les demandes de l'Ajax inter-domaines étaient impossibles. Cet article montre comment les COR améliorent les expériences du Web.
Prise des clés:
Access-Control-Allow-Origin
détermine les origines qui peuvent accéder aux réponses du serveur. Access-Control-Allow-Credentials
contrôle l'accès aux cookies. crossorigin
(avec anonymous
ou use-credentials
valeurs) contrôle la gestion des informations d'identification pour <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173984767246953.jpg" class="lazy" alt=" Un regard en profondeur sur CORS "> <code><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173984767246953.jpg" class="lazy" alt="An In-depth Look at CORS ">
<p><strong>Preflights:</strong></p>
<p>For complex requests (methods beyond GET/HEAD/POST, or custom headers), preflights (an initial OPTIONS request) verify server acceptance. The server responds with <code>Access-Control-Allow-Origin
Access-Control-Allow-Credentials
Access-Control-Allow-Methods
Ferflights: Access-Control-Allow-Headers
Access-Control-Max-Age
Access-Control-Request-Method
Pour les demandes complexes (méthodes au-delà de Get / Head / Post, ou en-têtes personnalisées), les avant -ïs (une demande d'options initiale) vérifient l'acceptation du serveur. Le serveur répond avec Access-Control-Request-Headers
, , , et
et dans le Fildlight.
Access-Control-Allow-Origin
img.setAttribute('crossOrigin', 'anonymous');
dans la configuration du serveur). Le code côté client nécessite . Sans COR, une exception de sécurité se produit. crossorigin
crossorigin
Origin
L'attribut anonymous
: use-credentials
Access-Control-Allow-Credentials: true
déclenche une demande COR avec l'en-tête . omet les informations d'identification;
les inclut (nécessitant le côté serveur ). Conclusion:CORS améliore considérablement le développement Web en facilitant l'accès aux ressources d'origine croisée. Il est crucial de comprendre ses implications de sécurité et de la mettre en œuvre correctement.
Questions fréquemment posées (FAQ):
La section FAQS fournit des réponses détaillées aux questions courantes sur les COR, couvrant l'objectif des en-têtes, la manipulation des cookies, les demandes simples vs biens, la configuration côté serveur, les risques de sécurité, la compatibilité des demandes HTTP, le rôle des en-têtes spécifiques, le comportement du navigateur , tests, et les différences entre CORS et JSONP. (La section FAQ d'origine est conservée dans son intégralité.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!