OBTENIR des variables avec des espaces - ils, mais est-il correct ou ok?
J'ai une page PHP où je suis de passage le nom de la ville, via un "ville" URL/GET variable. Actuellement, c'est en passant le véritable nom de la ville, même si elle a des espaces (par exemple .php?city=New York
). J'ai ensuite prendre l' $de la ville de prendre des variables et exécuter une requête MySQL contre les villes.nom.
Cela fonctionne bien mais j'ai toujours été sous l'impression que toutes les variables, à l'URL/GET ou autre ne doit jamais contenir d'espaces. Je suis plus que capable de remplacer les espaces w/caractères de soulignement ou de les enlever et de les remettre dans la requête...etc - mais j'ai pensé que je voudrais vous demander d'abord dans le cas où les espaces sont complètement bien, et c'était juste de la superstition de me dire le contraire.
OriginalL'auteur Dave | 2011-04-11
Vous devez vous connecter pour publier un commentaire.
Espaces sont très bien, et sont généralement encodés avec
+
.Pour plus de sécurité, utilisez
urlencode()
sur vos valeurs si les ajouter manuellement à votre GET params.CodePad.
Sinon, si votre formulaire de soumission que d'OBTENIR des params, juste les laisser comme ils sont 🙂
Assurez-vous que vous utilisez la base de données s'échapper mécanisme à l'abri de l'injection SQL.
Vous pouvez utiliser
urldecode()
.gotcha - merci
OriginalL'auteur alex
Cela fonctionne très bien sans l'aide de encodeURI() ou encodeURIComponent() pour les paramètres avec des espaces vides à partir de Javascript, Php ou Python.
Merci pour la note de https://stackoverflow.com/users/8712097/tom-aranda
Voici le code plus sûr.
shell_exec
de commande. Vous êtes potentiellement faire de votre serveur vulnérable aux pirates. Si votre serveur web est en cours d'exécution en vertu d'un utilisateur privilégié, alors qu'un pirate pourrait prendre le contrôle de votre serveur. Comme un minimum de mesure de sécurité, je voudrais utiliser le escapeshellcmd, mais je pense qu'il vaut mieux éviter deshell_exec
entièrement si possible. Voir ce DONC post.OriginalL'auteur Dave B
De l'espace dans l'URL est très bien. Une chose que vous devez prendre note dès que l'on travaille avec des variables prises en dehors de votre contrôle (variable d'URL, Cookies, etc, etc). Rappelez-vous toujours de le nettoyer pour éviter les injection sql, XSS, et d'autres attaques malveillantes.
OriginalL'auteur ariefbayu