Parametres par URL & "Securite" - PHP - Programmation
Marsh Posté le 15-04-2004 à 15:43:52
je me pose la meme question...
c'est vrai que si t'as une url du type :
delete.php?id=$id
ou la page efface l'id correspondant, ya rien de difficile à effacer toute la table ^^
Marsh Posté le 15-04-2004 à 15:48:29
il existerait po un moyen de faire des GET (par le biais de liens hypertexte ou de 'header()') en rendant les parametres "invisibles"
(je conçois qu'il est possible de "masquer" ses parametres en leur donnant des noms bidon, mais c un peu le "niveau 0" de l'invisibilite! ^^)
Marsh Posté le 15-04-2004 à 16:07:50
Dans le cas d'un formulaire tu peu faire
<form name=f onSubmit='envoi()'>
avec en javascript
function envoi()
{
f.method = 'POST';
f.action = $Lien ;
f.submit();
}
Dans la page qui traite les données tu récupère les valeurs avec $_POST["nomVariable"] et les valeurs n'apparaissent pas dans l'url.
Marsh Posté le 15-04-2004 à 16:41:03
il faudrait aussi faire une vérif sur l'autre page, pour tester le referent ... s'il n'existe pas (càd si le lien a été entré à la main) tu stop le script
++
Edit : Attention toutefois, car cette variable peut "facilement" etre modifiée par un utilisateur un peu bidouilleur...
Ah oui, la variable est $_SERVER['HTTP_REFERER']
Marsh Posté le 15-04-2004 à 16:41:46
<form method="post" action="tonscript.php">
mais de toute façon, si un utilisateur veut foutre le bordel il pourra quand même ... c'est de ton côté qu'il faut faire en sorte que tes données soient protégées ... par exemple en évitant les scripts stype delete.php où en les protegeant (mot de passe par exemple). Mais si tu ne fais que de la lecture, pourquoi connaître l'id du message serait dangereux ? sauf si tu as des données sensibles mais tu peux toujours imaginer un système de privilèges.
Marsh Posté le 15-04-2004 à 16:42:35
bien sur que c'est dangereux si vos scripts derrière font des maj / suppressions sur la base.
dans ce genre de cas, il faut vérifier que l'id reçu en paramètre soit bien du type attendu. (integer en général) et que l'utilisateur aie (?) bien le droit d'agir sur cet enregistrement.
Marsh Posté le 15-04-2004 à 16:57:47
Effectivement on peut trafiquer les requêtes MySQL via les arguments passés mais, sans vérifier son type, un bon traitement de l'argument (par exemple en le mettant entre quotes sans oublier de doubler toutes les quotes à l'intérieur) ne pourra que faire échouer la requête. À toi de vérifier le type pour fournir une erreur ciblée
Marsh Posté le 15-04-2004 à 18:13:48
Tentacle a écrit : <form method="post" action="tonscript.php"> |
genre un peu dynamique du type : md5('password de protection'.strftime("%D%M%Y" ))
au retour tu contrôles ta chaine md5
Le seul souci est de générer la page à 23h59 et d'avoir le clic à 0h00 le lendemain.
Marsh Posté le 26-04-2004 à 22:24:47
T509 a écrit a écrit : Le seul souci est de générer la page à 23h59 et d'avoir le clic à 0h00 le lendemain. |
Parce que ??
Marsh Posté le 15-04-2004 à 15:09:22
bonjour a tous!
je suis en train de finir une FAQ dynamique, avec a peu pres le meme fonctionnement que ce qu'ils nomment un "forum" a l'APJV http://www.afjv.com/actu_forums.htm
Grosso modo c du post de questions dans des rubriques préfaites, et du post de reponses a ces questions... Bref, rien de bien sorcier
Pour faire fonctionner tout ca, j'utilise des parametres, comme par exemple
action=question/reponse&rubriqueID=3&msgID=1&jecpokoi=472
, que je passe en GET a d'autres pages, cad par l'URL. La non plus, rien de nouvo sous le soleil
Seulement jme demande: toutes ces variables passées par URL, c po "dangereux" Voir des vrais ID d'enregistrements MySQL, ca peut po etre genant
Si mon utilisateur s'amuse a trifouiller ces parametres, il pouré ptet bien faire des conneries...
Je suis encore newbie des langages & des "concepts" liés a l'Internet, donc je me demande
MERCI D'AVANCE
Message édité par lkolrn le 15-04-2004 à 15:36:38