0

J'essaie de faire une requête d'un client javascript pour faire reposer api avec le framework de repos Django. Toutes les requêtes GET à/api/test sont publiques, alors aucune session ou jeton ou watever n'est nécessaire. Tous POST api/test sont privés et utilisateurs doivent utiliser oauth2Cadre de repos Django et demandes d'origines croisées

Selon the documentation, je dois gérer la demande d'origine croisée avec django-core-headers. Après avoir installé ce module sur mon django, j'ai défini CORS_ORIGIN_ALLOW_ALL à True mais: 1) est-ce une bonne pratique? 2) existe-t-il une bonne solution pour permettre une demande d'origine croisée uniquement sur certains points?

Merci

Répondre

0

avec les en-têtes de django-core-vous pouvez limiter origines CORS avec CORS_ORIGIN_WHITELIST et CORS_ORIGIN_REGEX_WHITELIST. Si vous n'avez pas besoin pour autoriser des origines arbitraires, puis définissez ceux; Sinon, vous êtes bon. Vous pouvez, si vous le souhaitez, écrire un décorateur pour vérifier l'origine dans vos vues pour voir si elle correspond à une origine désirée (peut-être que quelque chose est défini sur quel modèle suit quels utilisateurs sont autorisés pour les requêtes POST?). Mais si vous autorisez des requêtes GET provenant de n'importe quelle origine, et que vous ne vous souciez pas de savoir d'où proviennent les requêtes POST tant qu'elles sont autorisées, alors vous êtes dans le clair - après tout, comment pouvez-vous restreindre l'origine? Ne sais pas d'où les clients pourraient faire des demandes?

+0

merci pour la réponse. Malheureusement, la demande peut être faite à partir du navigateur des clients alors je ne peux pas définir une liste blanche :( – billyJoe