Post by geo75Comment faire pour sécuriser les acces a la base de données ?
en effet meme avec post on arrive a lire les variables.
si j'envoi en post dans mon script
fiche_info.php?client=120&compte=10
comment puis je empecher celui ci puisse par exemple remplacer
simplement par fiche_info.php?client=121&compte=10
ou 122
etc...
Bonjour
Première question : pourquoi installer une telle sécurité ? Quelles seraient
les conséquences si qqun pouvait changer le chiffre ?
Si c'est pour un accès client, et que le client 120 n'a pas le droit
d'accéder à la page du client 121, alors il faut stocker ce chiffre dans la
session (en supposant que 1 session = 1 client), ou, si une session peut
correspondre à plusieurs clients, indiquer les correspondances session <-->
client, la session contiendrait ici le numéro du compte, et dans la base de
données, on associe compte et clients. Lorsque le serveur reçoit une requête
pour une page, il vérifie que l'utilisateur X a bien le droit de regarder la
page avec les paramètres fournis.
Deuxième solution, qui me semble très compliquée à mettre en oeuvre, pour
chaque page générée, tu tires des grands numéros au hasard (1564255873478,
556324543458, 485457864567), tu stoques d'une manière ou d'une autre que la
page 544534856486 aura comme paramètre {client=120;compte=10}. On aura alors
comme code :
<a href="index.php?page=456456465542">Modifier mes paramètres</a>
<a href="index.php?page=354684865486">Créer une nouvelle commande</a>
Plus le chiffre est grand, plus la probabilité qu'un "intrus" tombe sur une
page valide est faible !
A chaque réalisation que j'ai faite, une réflexion sur comment enregistrer
les droits de l'utilisateur (et une ou deux vérifications sur le contenu de
$_REQUEST) m'a toujours permis de surmonter les problèmes de changement de
paramètre.
Eric