J'ai un problème qui est un peu étrange. Ma page contient un lien html qui rafraîchit la page et appelle une variable PHP. Cette variable ajoute une chaîne de date à la chaîne url qui est introduite dans une requête MySQL, qui saisit les enregistrements correspondant à cette date. Je pense que cela provoque une injection car il supprime parfois l'utilisateur de la base de données!Possibilité d'injection à partir d'une chaîne de date Sélectionner une requête
Je sais qu'il peut y avoir des problèmes de sécurité en utilisant le '#' dans le lien hypertexte, mais j'aimerais savoir ce qui se passe. Cela aurait également des effets différents sur les différents navigateurs vu comment il utilise javascript. Les utilisateurs supprimés semble se produire uniquement sur certains ordinateurs des peuples.
Le code PHP calcule un horodatage trois jours à partir de maintenant et met ensuite dans un format SQL:
$ts_threeDays = mktime(1,0,0,date('m'), date('d')+3-date('w'), date('y'));
$threeDaysAhead = date('y-m-d', $ts_second_day);
Le script écoute alors pour la variable « jour » dans la chaîne d'URL transmis par le lien hypertexte sur la page:
$date = mysql_real_escape_string($_GET['day']);
Le JavaScript et lien est:
<a href='#' onClick="document.location.href='planner.php?day=<?php echo $threeDaysAhead; ?>'"> 3 Days Later</a>
Le MySQ L requête est plus grande, mais la seule entrée qu'elle prend de l'action de l'utilisateur est la chaîne de date ci-dessus. Requête ressemble fondamentalement à ce (utilise une autre instruction select pour accéder aux utilisateurs tableau):
SELECT planner.details FROM planner
WHERE planner.date = '$date' AND users.`user_id` = '$id' // Logged in Id superglobal
Si quelqu'un peut me aider et expliquer mon problème, je serai très reconnaissant. Un grand merci
Vous pouvez même attribuer '$ day' la partie correspondante du regex. De cette façon, si vous avez des déchets contenant une date (comme 2009-09-03); BAISSEZ les élèves; '), vous dépouillez les déchets. –
Vous avez raison. La regex devrait être '^ \ d {4} - \ d {2} - \ d {2} $' ^. Mon erreur – inakiabt