Audit de code (plusieurs types) (2)
Problème d'espace blanc
is_numeric () problème de saut d'espace blanc
Dans la fonction is_numeric (), il y a un problème de saut de caractère vide. L'
effet est le suivant.
Ce qui peut être ajouté ici sont "", "\ r", "\ n", "\ t", "\ v", "\ f"
réduire()
Ici, cette fonction supprimera "", "\ t", "\ n", "\ r", "\ 0", "\ x0B"
ci-dessus pour contourner la première condition afin de déterminer s'il s'agit d'une valeur.
Ci-dessous, nous continuons à regarder ce qui suit sinon, ce que nous voulons comprendre est intval () et strval ()
intval ()
Il retourne la valeur int de var quand il réussit, et 0 s'il échoue. Un tableau vide renvoie 0 et un tableau non vide renvoie 1. Plus important encore, la valeur maximale d'intval dépend du système d'exploitation. La plage d'entiers signés maximale pour les systèmes 32 bits est de -2147483648 à 2147483647. Sur les systèmes 64 bits, la valeur d'entier signé maximale est 9223372036854775807.
La charge utile finale:? Number = 0,00% 00 ou? Number = 0,00% 00 ou? Number = 9223372036854775807% 00 Le% 00
derrière peut également être changé en% 20.
Je ne l'ai pas reproduit avec succès, je ne connais pas la raison. . . Mais l'idée est comme ça.
Nombre pseudo-aléatoire
mt_rand
mt_srand
Il y aura un problème de sécurité ici. Par exemple, après avoir utilisé la fonction mt_srand () pour semer des graines, les nombres aléatoires générés sont les mêmes. De cette façon, la valeur d'un autre nombre aléatoire peut être obtenue en inversant le germe de la fonction mt_rand (). L'outil recommandé ici est php_mt_seed, qui est disponible sur github, donc je ne mettrai pas le lien. Généralement, cela peut être fait conformément à l'inclusion du fichier. Pour plus de détails, veuillez cliquer sur
Opératrice
Une logique très simple, nous donnons ici la table de priorité de l'opérateur
puis regardons attentivement le contenu de la table, vous pouvez voir que la charge utile est construite, charge utile:? A = 1
Parse_url
Intime post syntaxe
Notez la valeur de retour, null peut être utilisé dans les types faibles
En regardant l'exemple,
nous pouvons voir que les premier, deuxième et troisième si les jugements nous limitent à entrer _, 0, chiffres, lettres, etc. Voyons ce qui suit si les jugements, il est évident qu'il ne peut y avoir de nombres , Nous ne pouvons donc le contourner qu'en affectant null à la variable url. charge utile: _ = d ou. = d