Dans mon projet, je dois autoriser les autres à envoyer des requêtes ajax à mon script. Ainsi, les demandes externes peuvent provenir d’autres sites Web et domaines et peut-être d’extensions de navigateur.
J'ai simplement ajouté ces deux lignes en haut de mon script pour les laisser faire:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
Maintenant, ma question est la suivante: y a-t-il une considération de sécurité que j'ai manquée? cette solution simple pose-t-elle de sérieux problèmes?
Si oui, quelle est la meilleure solution?
Merci pour la réponse.
Comme mentionné ci-dessus, tout le monde peut envoyer une demande à votre page à tout moment: les principales préoccupations en matière de sécurité sont donc de valider la saisie de l'utilisateur et de ne révéler que les informations disponibles pour la consommation publique. Mais cela s'applique à tous les scripts.
Les deux principaux problèmes sur lesquels vous devez vous concentrer (après la validation de la saisie de l'utilisateur) sont:
.
<?php
header('content-type: application/json; charset=utf-8');
$data = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
echo $_GET['callback'] . '('.json_encode($data).')';
?>
Autres facteurs à garder à l'esprit:
Comme dit zerkms, s’ils viennent juste "d’aller" sur votre page php, ils pourront voir tout ce qui se passe. Si c'est possible (Je ne suis pas sûr que ce soit le cas), cela permettra également aux personnes indésirables de créer leurs propres formulaires, même sur un hôte local, et de les envoyer via AJAX pour obtenir les réponses qu'ils souhaitent. vous, et les informations sont ambiguës/inoffensives ... Alors je suppose que ce serait "sûr". Ce n'est pas une méthode correcte pour obtenir/transférer des informations sensibles
private function set_headers() {
header("HTTP/1.1 ".$this->_code." ".$this->get_status_message());
header("Content-Type:".$this->_content_type);
header("Access-Control-Allow-Origin: *");
}