Retourner aux forums || Retourner au forum Programmation.php
Programmation.php : Question de sécurité
Posté par zebzore () le 20 décembre 2006Je suis en train de developper la tete dans le guidon quand soudain une question importante vient me taper dans la tete... Ne risque tu pas de te faire pirater ????
Alors ma question concerne les données transistant de formulaire.
En effet, j'utilise un formulaire pour enregistrer les données des utilisateurs de mon site et pour reconnetre la personne à mettre à jour j'ai eu la bonne idée ^^ (mais peut etre fatale) de mettre l'id de l'utilisateur en champ caché.
Ainsi je peux faire transiter cet id de page en page sans utiliser les variables de session.
J'utilise la methode post pour mes formulaires.
Y a t'il un moyen pour l'utilisateur du site de modifier cette variable post contenant cet id et ainsi modifier les données d'autres utilisateurs ?
Merci d'avance
> Lire le message (5 commentaires, moyenne: 1,8).
Oui
L'extension livehttpheader (pour faire simple) de firefox le permet.
Ensuite a toi de voir si ton application sait faire la vérification.
ben....
Faut utiliser une variable de session et deconnecter l'id des formulaires.
L'autre solution est de faire un id crypté ex ###1##3#######&& avec ton id=13 perdu autour d'autres chiffres et une clé && calculée :
L'avantage, pas de session (mais attention si il fait pas le parcours habituel avec les post -> perdus.
L'avantage il peut pas changer l'id car il connait pas comment il se trouve (le 13) et même si il sait, il peut pas mettre 14 car la clé n'est plus bonne.
Intellectuellement c'est de la sécurité par obscurité, ca marchote, mais je ferais pas cela avec des infos sensibles.
Beaucoup de bidouille pour pas faire un session_sart();
hervé
-
[^]Re: ben....
Posté par Krunch (Jabber id, page perso, ) le 22/12/2006 à 08:12. (lien). Évalué à 2.Ton idée c'est d'autentifier l'ID avec un MAC. C'est pas de la sécurité par obscurité si c'est bien fait (s'il y a une clé correctement générée). Tant qu'on y est, il vaut sans doute mieux d'autentifier tous les champs plutôt que juste l'ID. Genre id=42&foo=bar&baz=quux&auth=mac(42 . bar . quux, secret) avec "secret" un nombre aléatoire (idéalement propre à la session, mais quelque chose qui change toutes les X heures devrait faire l'affaire) et mac() une fonction générant un code d'authentification (typiquement un HMAC SHA-1, doit déjà y avoir ça dans les lib PHP standards).
http://fr.wikipedia.org/wiki/HMAC
http://www.linux-mag.com/2002-09/security_01.html
http://www.linux-mag.com/2002-09/cryptography_01.html
http://www.bugmenot.com/view/www.linux-mag.com
Au final il est sans doute plus facile d'utiliser les sessions.--
Free Softwares Users Group Arlon (Sud Luxembourg, Belgique)
pertinent, e adj. Approprié ; qui se rapporte exactement à ce dont il est question.
Vive les sessions !
Pourquoi ne pas vouloir utiliser de session ? Ca évite de transporter des données sensibles entre le client et le serveur.
Pour sécuriser le truc sans sessions, tu peux aussi ajouter en plus un hash du mot de passe à vérifier à chaque accès à une page, mais là encore tu vas te retrouver à laisser circuler ça en clair sur le réseau (à moins d'avoir du HTTPS).
-
[^]Re: Vive les sessions !
Posté par zebzore () le 21/12/2006 à 09:21. (lien). Évalué à 1.Alors d'habitude j'utilise des sessions sauf que là, j'ai un pb que je n'arrive pas à regler.... :((
Je vais essayé de l'expliquer ci dessous :
Voici le processus
J'ai une page de connexion vers l'espace privé.
Je passe les données en post vers une autre pages contenant le script verifiant dnas la db si le couple login/pwd est correct puis (si tout est bon) je mets des données dnas mes variables de session et je fais une redirection html vers mon index.php avec en argument get un id_page qui me renvois par un require(".....") vers la page affichant les données.
J'ai mis un session_start() uniquement sur la page index car elle est rechargé à chaque fois.
Cela ne fonctionne pas, mes variables sont bien là au retour sur l'index.php mais disparaissent apres le require.
C'est pas evident, ais je été clair ?
merci
ps : j'ai deja testé en mettant des session_start() partout
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.php



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.