Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1686 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Welcome to da noob!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Welcome to da noob!

n°1255270
hpenhp
Hopital Psychiatrique
Posté le 29-11-2005 à 14:00:59  profilanswer
 

Salut les amis (futurs ennemis :D )
 
voila je me suis mis au php/sql il ya bientot 2 mois de cela. N'ayant jamais programmé et ne voulons pas limité ma connaissance en création de site à des programmes tels que dreamweaver ou flash.. je me suis lancé dans l'aventure php/sql pour créer un site avec base de donnée dynamique..
jusque là tout va bien, la plupars de mes déboires ayants étés contrés! :D  
 
mais la depuis 2 semaines je bloque.. oui je suis pas trop bête pourtant mais je reste complétement bloqué sur une histoire de SECURITE..
 
hé oui, c'est sérieux cette histoire de base de donnée, comme dit le vieu bercerker.. je veux pas que n'importe quel naab vienne pourrir le fruit de mon travail.. en envoyant des requetes insidieuses dans les fenetres de recherche, en utilisant les cookies pour se connecter apres un utilisateur loggé, en copier/coller d'une url loguée, bref foutre la m$^ù$ dans ma base de donnée avec un DROP TABLE par exemple..
 
c'est pourquoi.. dieu créa la femme.. euh non.. le javascript.. et ses formulaires a la cù$ .. bon je me propose de vous montrer ou j'en suis pour y voir plus clair.. :(   :
 
1- page de log:

Code :
  1. <?php
  2.      // Raccourcis
  3. $name=$_POST[ 'name' ];
  4. $password=$_POST[ 'password' ];
  5. if (!isset($_POST['name'])&&!isset($_POST['password']))
  6. {
  7.     // Les visiteurs doivent entrer un password
  8. ?>
  9. <html>
  10.    <head> <p align="center"><img src="logo.jpg" width="408" height="96" /></p>
  11.       <title>
  12.          Merci de vous enregistrer
  13.       </title>
  14.       <script language="javascript">
  15.       function envoyer(){
  16.  if {(document.monform.name.value!="" &&document.monform.password.value!=""
  17.   document.monform.action = "logclient.php"
  18.   document.monform.submit())};
  19.     else {
  20.    alert("Saisissez vos identifiants" )
  21.   }
  22. }
  23. </script>
  24.    </head>
  25.    <body> <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
  26.     <h1>Le contenu de ce site n'est accessible qu'après enregistrement de votre part.<h1>
  27.     <form method="post" action="javascript:envoyer()" name="monform">
  28.     <table border="1">
  29.     <tr>
  30.       <th> Login </th>
  31.       <td> <input name="name" type=text> </td>
  32.     </tr>
  33.     <tr>
  34.       <th> Password </th>
  35.       <td> <input name="password" type=password> </td>
  36.     </tr>
  37.     <tr>
  38.       <td colspan="2" align="center">
  39.         <input type="submit" value="Log In">
  40.       </td>
  41.     </tr>
  42.     </table>
  43.     </form>
  44.    </body>
  45. </html>
  46. <?php
  47.   }
  48.   else
  49. ?>


 
 
 
 
 
 
 
 
2- ma page de vérification/validation du log:

Code :
  1. <?
  2.    require_once('Connections/connexiondream.php');
  3.    mysql_select_db($database_connexiondream, $connexiondream);
  4.    session_start();
  5.    $name = $HTTP_POST_VARS[ 'name' ];
  6.    $password = $HTTP_POST_VARS[ 'password' ];
  7.    $sql = "select * from autorized_user where name='$name' and password='$password'";
  8.    $res = mysql_query($sql);
  9.    $nb = mysql_numrows($res);
  10.    if($nb!=0) {
  11.      $row = mysql_fetch_object($res);
  12.   $HTTP_SESSION_VARS['name'] = $row->name;
  13.   $HTTP_SESSION_VARS['password'] = $row->password;
  14.   $HTTP_SESSION_VARS['logclient_ok'] = "oui";
  15.     
  16.  header("location:secretdb.php" );
  17.    }
  18.    else {
  19.   $HTTP_SESSION_VARS['name'] = "";
  20.   $HTTP_SESSION_VARS['password'] = "";
  21.   $HTTP_SESSION_VARS['logclient_ok'] = "non";
  22.  
  23. ?>
  24. <html>
  25. <head><p align="center"><img src="logo.jpg" width="408" height="96" /></p>
  26. <title>Eclairlab - Interface d'Administration</title>
  27. <link rel="stylesheet" type="text/css" href="inclusion/style.css">
  28. </head>
  29. <body> <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
  30.   <center>
  31.   <table border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff" width="737" height="100%">
  32.       <tr>
  33.       <td height="100%" align="center" valign="middle">
  34.          <form name="monform" method="post" action="secretdb.php">
  35.          <p><font color="#074A75"><b>Login ou Mot de Passe incorrect !</b></font></p>
  36.          <p><input type="submit" value="Retour"></p>
  37.          </form>
  38.       </td>
  39.    </tr>
  40.   </table>
  41.   </center>
  42. </div>
  43. </body>
  44. </html>
  45. <? } ?>


 
 
 
 
 
 
enfin  
3- la page dans le sous dossier connexion qui va permettre de ne pas afficher les log/pass admin dans la source de mes pages!:

Code :
  1. <?php
  2. # FileName="Connection_php_mysql.htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $hostname_connexiondream = "localhost";
  6. $database_connexiondream = "auth";
  7. $username_connexiondream = "root";
  8. $password_connexiondream = "test";
  9. $connexiondream = mysql_connect($hostname_connexiondream, $username_connexiondream, $password_connexiondream) or trigger_error(mysql_error(),E_USER_ERROR);
  10. ?>


 
 
bon alors déja je tiens a dire que je suis un semi noob, étant donné que mes pages de recherche et d'entrées sur la base de données fonctionnent :D et les 2 mois depusi lesquels je travail la dessus  :bounce:  
Mais.. je voudrais sécurisé le tout et je susi bloqué, pour ce faire j'ai meme u recours a l'aide d'un ami qui m'a gracieusement donné le plan des 3 fichiers que je viens de vous montrer.. ba oui je pouvais pas inventer cette technique quand meme :D (enfin l'hisoire de javascript et la page 3.. le html et php/sql je comprend a peu pres :lol: )
 
voila mon probleme.. outre ces salopries de undefined index pour :Notice: Undefined index: name in c:\program files\easyphp\www\secretdb.php on line 4
 
Notice: Undefined index: password in c:\program files\easyphp\www\secretdb.php on line 5
 
le isset ne fonctionne pas je m'arrache les cheveux..
 
mon probleme donc est que lorsque j'arrive a passer a la page  2 de vérification du log, il m'affiche que je n'ai pas le bon mot de passe ou utilisateur.. et je ne comprends pas pourquoi.. :cry:  
 
ma base de donées : auth ma table : autorized_user et mes champs :  
- user_id  int(11)     Non    auto_increment              
- name  varchar(20) latin1_swedish_ci   Non                  
- password  varchar(10) latin1_swedish_ci   Non                  
 
bien sur j'utilise easy php 1.8.0.1   oui je sais c'est mieux de tout gérer soit meme mais chaque chose en son temps s'il vous plait.. :D  
 
voila je crois avoir tout dit.. n'y connaissant rien en javascript est encore peu en php je suis bloqué.. malgres les différentes tentatives de changement de syntaxe etc.. :??:  
 
P.S.:merci d'avance et désolé pour ceux que je saoulerai avec mes questions qui peuvent paraitre naabiques au plus haut point.. mais c'est pas faute d'avoir lu vos tutos.. ou au passage celui de bercerk sur la sécurité qui est incompréhensible en matière d'implémentation.. j'ai bien vu qu'il ya v une autre méthode et meilleure que celle que j'utilise d'apres lui mais concrétement comment je l'emploi? :D  

mood
Publicité
Posté le 29-11-2005 à 14:00:59  profilanswer
 

n°1255279
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-11-2005 à 14:08:00  profilanswer
 

Pas besoin de javascript pour faire ça. En plus c'est pas le js qui va t'aider à sécuriser ton site...
Donc refait tout avec:
- les contrôles du coté serveur,  
- utilises $_POST plutot que  $HTTP_POST_VARS et  $_SESSION plutot que $HTTP_SESSION_VARS
- enleves les bouts de code qui servent à rien  

Code :
  1. $name=$_POST[ 'name' ];
  2. $password=$_POST[ 'password' ];


- et pour le fun crypte le mot de passe en md5


Message édité par anapajari le 29-11-2005 à 14:08:43
n°1255283
hpenhp
Hopital Psychiatrique
Posté le 29-11-2005 à 14:10:50  profilanswer
 

thx
 
t1 je croyais que c t util c bouts de code la! bref ok je vais tester tout ca

n°1255290
hpenhp
Hopital Psychiatrique
Posté le 29-11-2005 à 14:16:45  profilanswer
 

oui donc quand tu dis.. : "les contrôles du coté serveur"
 
tu veux dire quoi? (noob spotted) :??:  :D

n°1255308
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-11-2005 à 14:32:16  profilanswer
 

Ton javascript sert à vérifier que login/pass ne sont pas vide.
Tu vires ton js et c'est dans ton php que tu fais ce controle.
En cas d'erreur, plutot que de faire un alert, tu affiches une page d'erreur!

n°1255353
Tamahome
⭐⭐⭐⭐⭐
Posté le 29-11-2005 à 15:13:02  profilanswer
 

ne stocke pas le password mais sa clée de hash plutot et compare ca (google MD5)

n°1256166
cinocks
Posté le 30-11-2005 à 17:04:44  profilanswer
 

et controle les données passées en $_POST et $_GET.
 
surtout ne pas en balancer le contenu dans ta requete.
 
commence par un strip_tags($_POST['name'])


---------------
MZP est de retour

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Welcome to da noob!

 

Sujets relatifs
[noob] programme en console --> tache de fondConseil ( noob inside )
Afficher le contenu d'1 fichier XML dans un flash - Master NooB insideProblème d'execution d'un logiciel compilé. (Noob inside)
erreur a la compil (niveau noob)Convertir un mod entre deux php - noob inside
Pb de noob avec une commande start(noob)Site en include et erreur 404...
[NOOB]XML quel outilblabla@web
Plus de sujets relatifs à : Welcome to da noob!


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)