Shout-Box trés basique

Shout-Box trés basique - PHP - Programmation

Marsh Posté le 17-07-2007 à 17:32:37    

Salut,
 
Je débute en PHP, et j'ai fait un petit code très simplifié, pour un mini-tchat je voudrai savoir s'il y a des failles à corriger sur ce codes avant de continuer... merci.
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3.     <head>
  4.         <title>Mini-chat</title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.     </head>
  7.     <style type="text/css">
  8.     form
  9.     {
  10.         text-align:center;
  11.     }
  12.     </style>
  13.     <body>
  14. <?php
  15. if( isset ($_POST['pseudo'])  AND  isset ($_POST['message']) )
  16.     if( $_POST['pseudo'] != NULL  AND  $_POST['message'] != NULL )
  17.     {
  18.     mysql_connect("localhost", "root", "" );
  19.             mysql_select_db("teste" );
  20.     $pseudo = $_POST['pseudo'];
  21.             $message = $_POST['message'];
  22.     mysql_query("INSERT INTO tchat VALUES('', '$pseudo', '$message')" );
  23.     mysql_close();
  24.     }
  25. }
  26. ?>
  27. <form action="tchat.php" method="post">
  28. <p>
  29.     Pseudo : <input type="text" name="pseudo" /><br />
  30.     Message:  <input type="text" name="message" /><br />
  31.     <input type="submit" value="Send" />
  32. </p>
  33. </form>
  34. <?php
  35. mysql_connect("localhost", "root", "" );
  36. mysql_select_db("teste" );
  37. $data= mysql_query("SELECT * FROM tchat ORDER BY ID" );
  38. mysql_close();
  39. while( $arrayData= mysql_fetch_array($data) )
  40. {
  41. ?>
  42. <p><strong><?php echo $arrayData['psd']; ?></strong> : <?php echo $arrayData['msg']; ?></p>
  43. <?php
  44. }
  45. ?>
  46.     </body>
  47. </html>


 
Merci d'avance pour votre aide.


Message édité par _Reggae_ le 17-07-2007 à 18:10:09
Reply

Marsh Posté le 17-07-2007 à 17:32:37   

Reply

Marsh Posté le 17-07-2007 à 17:41:11    

shout [:rofl2]

Reply

Marsh Posté le 17-07-2007 à 18:32:20    

Bonjour,
ce script n'est absolument pas sécurisé.
Premierement, aucun controle n'est effectué sur les données soumises par l'utilisateur avnt de les insérer dans la base de données. Tu risques donc une attaque par injection SQL.
Deuxiemement, tu ne controle pas non plus ce qui est affiché sur la page. Ainsi, l'utilisateur peut placer du code HTML ou javascript sans probleme sur ta page. Si je ne m'abuse, on appelle cela une faille de type XSS. Par exemple, entre un message du genre:

Code :
  1. <script>alert('Vous avez ete pirate!');</script>


Cet exemple est inoffensif, mais on peut faire bien pire en javascript...
 
Pour combler ces failles, regarde du coté des fonctions addslashes et html_entities
 
Apres, je suis loin d'etre un pro en php (ou autre), donc il y a peut etre (surement :) ) d'autres points faibles...
 
Bon amusement.

Reply

Marsh Posté le 18-07-2007 à 08:55:51    

Code :
  1. #
  2. if( isset ($_POST['pseudo'])  AND  isset ($_POST['message']) )
  3.    if( $_POST['pseudo'] != NULL  AND  $_POST['message'] != NULL )
  4.    {


 
-->

Code :
  1. if (!empty($_POST['pseudo']) && !empty($_POST['message']))

?

Reply

Marsh Posté le 18-07-2007 à 09:47:55    

strip_tags() aussi pour sécuriser un peu plus.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed