Salut les amis (futurs ennemis
)
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!
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 :
- <?php
- // Raccourcis
- $name=$_POST[ 'name' ];
- $password=$_POST[ 'password' ];
- if (!isset($_POST['name'])&&!isset($_POST['password']))
- {
- // Les visiteurs doivent entrer un password
- ?>
- <html>
- <head> <p align="center"><img src="logo.jpg" width="408" height="96" /></p>
- <title>
- Merci de vous enregistrer
- </title>
- <script language="javascript">
- function envoyer(){
- if {(document.monform.name.value!="" &&document.monform.password.value!=""
- document.monform.action = "logclient.php"
- document.monform.submit())};
- else {
- alert("Saisissez vos identifiants" )
- }
- }
- </script>
- </head>
- <body> <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
- <h1>Le contenu de ce site n'est accessible qu'après enregistrement de votre part.<h1>
- <form method="post" action="javascript:envoyer()" name="monform">
- <table border="1">
- <tr>
- <th> Login </th>
- <td> <input name="name" type=text> </td>
- </tr>
- <tr>
- <th> Password </th>
- <td> <input name="password" type=password> </td>
- </tr>
- <tr>
- <td colspan="2" align="center">
- <input type="submit" value="Log In">
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html>
- <?php
- }
- else
- ?>
|
2- ma page de vérification/validation du log:
Code :
- <?
- require_once('Connections/connexiondream.php');
- mysql_select_db($database_connexiondream, $connexiondream);
- session_start();
- $name = $HTTP_POST_VARS[ 'name' ];
- $password = $HTTP_POST_VARS[ 'password' ];
- $sql = "select * from autorized_user where name='$name' and password='$password'";
- $res = mysql_query($sql);
- $nb = mysql_numrows($res);
- if($nb!=0) {
- $row = mysql_fetch_object($res);
- $HTTP_SESSION_VARS['name'] = $row->name;
- $HTTP_SESSION_VARS['password'] = $row->password;
- $HTTP_SESSION_VARS['logclient_ok'] = "oui";
-
- header("location:secretdb.php" );
- }
- else {
- $HTTP_SESSION_VARS['name'] = "";
- $HTTP_SESSION_VARS['password'] = "";
- $HTTP_SESSION_VARS['logclient_ok'] = "non";
-
- ?>
- <html>
- <head><p align="center"><img src="logo.jpg" width="408" height="96" /></p>
- <title>Eclairlab - Interface d'Administration</title>
- <link rel="stylesheet" type="text/css" href="inclusion/style.css">
- </head>
- <body> <body background="fonduni2.jpg" text="#FFFF00" link="#0000ff" vlink="#800080" alink="#ff0000">
- <center>
- <table border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff" width="737" height="100%">
- <tr>
- <td height="100%" align="center" valign="middle">
- <form name="monform" method="post" action="secretdb.php">
- <p><font color="#074A75"><b>Login ou Mot de Passe incorrect !</b></font></p>
- <p><input type="submit" value="Retour"></p>
- </form>
- </td>
- </tr>
- </table>
- </center>
- </div>
- </body>
- </html>
- <? } ?>
|
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 :
- <?php
- # FileName="Connection_php_mysql.htm"
- # Type="MYSQL"
- # HTTP="true"
- $hostname_connexiondream = "localhost";
- $database_connexiondream = "auth";
- $username_connexiondream = "root";
- $password_connexiondream = "test";
- $connexiondream = mysql_connect($hostname_connexiondream, $username_connexiondream, $password_connexiondream) or trigger_error(mysql_error(),E_USER_ERROR);
- ?>
|
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
et les 2 mois depusi lesquels je travail la dessus
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
(enfin l'hisoire de javascript et la page 3.. le html et php/sql je comprend a peu pres
)
voila mon probleme.. outre ces salopries de undefined index pour
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..
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..
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?