Maison  >  Article  >  développement back-end  >  Comment valider une entrée au format JSONP à l'aide d'expressions régulières en PHP

Comment valider une entrée au format JSONP à l'aide d'expressions régulières en PHP

PHPz
PHPzoriginal
2023-06-24 09:03:42856parcourir

Avec le développement continu des applications Web, AJAX (JavaScript asynchrone et XML) devient de plus en plus courant. JSONP (JSON with Padding) est un protocole d'interaction AJAX général. Il permet de demander des données à des serveurs de différents domaines et est couramment utilisé en JavaScript.

En PHP, si vous devez valider une entrée au format JSONP provenant d'un autre domaine, vous devez l'analyser correctement. Ce processus peut être accompli à l'aide d'expressions régulières. Dans cet article, nous explorerons comment utiliser les expressions régulières en PHP pour valider les entrées au format JSONP.

Entrée au format JSONP

Avant de discuter en profondeur de la façon de vérifier le format JSONP, présentons brièvement l'entrée au format JSONP.

Lorsque le client utilise le format JSONP pour obtenir des données, il fera une requête au serveur. Après avoir reçu la requête, le serveur encapsule les données dans une fonction de rappel et les renvoie au client. De cette manière, le client peut effectuer un traitement des données lors de la réception de la fonction de rappel.

Par exemple, si le client demande au serveur d'obtenir les données utilisateur nommées "client" via JSONP, il enverra une requête similaire au code suivant :

https://example.com/user.php?callback=client

Le serveur doit rappeler l'utilisateur en fonction du nom de la fonction de rappel dans la requête Les données sont enveloppées dans un appel de fonction et le code JavaScript correspondant est renvoyé. Par exemple :

client({"name":"Tom","age":18,"gender":"male"});

Si le nom de la fonction de rappel contient des caractères illégaux ou est dans un format incorrect, les données ne seront pas traitées correctement. Par conséquent, le nom de la fonction de rappel doit être vérifié côté serveur.

Utilisez des expressions régulières pour valider une entrée au format JSONP

Ci-dessous, nous utiliserons un exemple pour illustrer comment utiliser des expressions régulières pour valider une entrée au format JSONP.

La première étape consiste à obtenir le nom de la fonction de rappel. Nous devons obtenir la valeur de rappel de l'URL demandée. En PHP, nous pouvons obtenir les paramètres d'URL via $_GET.

$callback = isset($_GET['callback']) ? $_GET['callback'] : '';

La deuxième étape consiste à vérifier le nom de la fonction de rappel. Nous devons nous assurer qu'il ne contient que des caractères autorisés. Dans JSONP, seuls les caractères alphanumériques et les traits de soulignement sont autorisés dans les noms de fonctions de rappel. Nous pouvons utiliser des expressions régulières pour vérifier.

if (preg_match('/^[a-zA-Z0-9_]+$/', $callback)) {
    // 正确格式的回调函数名称
} else {
    // 非法的回调函数名称
}

L'expression régulière ci-dessus peut être interprétée comme :

  1. Start : ^ signifie le début de la chaîne correspondante.
  2. Chaîne : [a-zA-Z0-9_]+ signifie faire correspondre les lettres majuscules et minuscules, les chiffres et les traits de soulignement au moins une fois.
  3. Fin : $ indique la fin de la chaîne correspondante.

Cette expression régulière correspond uniquement aux noms de fonctions de rappel contenant des caractères alphanumériques et des traits de soulignement, tout en ignorant les autres caractères. Si le nom de la fonction de rappel contient d'autres caractères, la validation échouera.

Conclusion

En PHP, il est très simple d'utiliser des expressions régulières pour valider une saisie au format JSONP. Il vous suffit d'obtenir le nom de la fonction de rappel et de le vérifier à l'aide d'une expression régulière. Cela permet de garantir qu'il n'y aura aucun problème lors du traitement des entrées au format JSONP lorsque le serveur reçoit la demande.

Cependant, il convient de noter que les expressions régulières ne garantissent pas totalement la sécurité des données. Par conséquent, lors du traitement des données d'entrée, nous devons également effectuer d'autres contrôles de sécurité, tels que la longueur d'entrée, l'injection SQL ou les attaques XSS, etc.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn