Récuperation de données - PHP - Programmation
Marsh Posté le 16-02-2005 à 17:10:56
frlp a écrit : J'ai un problème de récupération de données sur le code présent: |
Salut déjà il y a une grosse faille de sécurité dans ton code tu devrais hacher les données avec htmlentities avant de les insérer. Concernant ta requéte regarde déjà le contenu de ton tableau $_GET en faisant print_r($_GET).
tu sauras si ça vient de ta requéte ou de ton formulaire. A mon avis il y a rien dans tes variables cpour ça que ça déconne
:-)
Marsh Posté le 16-02-2005 à 17:14:20
sky_striker a écrit : tu devrais hacher les données avec htmlentities avant de les insérer |
un addslashes est plus approprié, et attention à la config de magic_quotes_gpc
Marsh Posté le 16-02-2005 à 17:16:06
soju a écrit : un addslashes est plus approprié, et attention à la config de magic_quotes_gpc |
Plus approprié pourquoi ?
J'ai lu que la addslashes ne suffisait pas pour avoir un bon niveau de sécurité ...
Pk j'en sais rien mais c'est ce que j'ai lu
Marsh Posté le 16-02-2005 à 17:19:58
sky_striker a écrit : Plus approprié pourquoi ? |
tout simplement parce que htmlentities modifie les données entrées par l'utilisateur
Marsh Posté le 16-02-2005 à 17:21:37
soju a écrit : tout simplement parce que htmlentities modifie les données entrées par l'utilisateur |
C'est un peu le but il me semble ... En plus htmlentities est trés facilement reversible ...
Marsh Posté le 16-02-2005 à 17:24:04
sky_striker a écrit : C'est un peu le but il me semble ... En plus htmlentities est trés facilement reversible ... |
même si htmlentities est facilement reversible je pense qu'il est plus logique de mettre dans la base les vrai données, enfin c'est mon avis.
@frlp : desolé pour le hors sujet
Marsh Posté le 16-02-2005 à 17:27:11
soju a écrit : même si htmlentities est facilement reversible je pense qu'il est plus logique de mettre dans la base les vrai données, enfin c'est mon avis. |
Je suis d'accord avec toi mais dans ce cas il faut me montrer par A+B que addslashes suffit à assurer un niveau de sécurité suffisant sachant que les navigateurs (IE notament) sont trés permissif sur la syntaxe ...
Pour le reste et ne voyant pas le pK je fais confiance aux pros de la sécurité ...
:-)
Désolé pour le hors sujet
Marsh Posté le 16-02-2005 à 17:33:43
pour faire une sql injection il faut réussir à sortir des quote, donc si tu les échappes ya pas de problèmes (et peu importe le navigateur)
Marsh Posté le 16-02-2005 à 17:41:25
héhé pas de problemes
Pour le code, c'est la base là, je l'enchérirai aprés mais pour le moment je veux juste que cela marche pour aprés rajouté les sécus et tout le reste.
print_r($_GET) donne Array ( )
Marsh Posté le 16-02-2005 à 18:00:42
Bon c'est cool, mon code n'est pas pourri
C'est mon serveur qui est capricieux... Donc quelqu'un peut il me traduire mon code php avec les thermes universels svp ? ou m aguiller.
merci
Marsh Posté le 16-02-2005 à 18:02:01
soju a écrit : pour faire une sql injection il faut réussir à sortir des quote, donc si tu les échappes ya pas de problèmes (et peu importe le navigateur) |
Il n'y a malheureusement pas que des SQL injections ...
Marsh Posté le 16-02-2005 à 18:04:49
frlp a écrit : Bon c'est cool, mon code n'est pas pourri |
A mon avis le probléme ne vient pas de ton serveur ... Essais d'appeller le script de traitement du formulaire sur la même page (en changeant l'adresse dans le action) et tiens nous au courant du résultat...
Marsh Posté le 16-02-2005 à 18:05:02
sky_striker a écrit : Il n'y a malheureusement pas que des SQL injections ... |
tu penses a quoi en particulier ?
Marsh Posté le 16-02-2005 à 18:08:54
je viens de tester sur free, le meme code, et les variables se récup nikel.
Donc je pense au serveur.
Marsh Posté le 16-02-2005 à 18:09:15
soju a écrit : tu penses a quoi en particulier ? |
Sur le principe franchement je suis d'accord avec toi pk faire compliqué qd on peut faire plus simple. Mais d'un autre coté je me dit qu'au pire le HTML est de toute façon plus neutre que du texte. Donc dans ce cadre là je jouons la carte de la prudence.
Sinon il y a les injections de script coté client genre tu met un truc qui fait un reload infinie sur une page jusqu'a effondrement du serveur (flood). Enfin il y a la foule de chose que toi et moi et les autres ne savons pas mais il y a un truc que je sais c qu'un programme c du texte pas du html ...
Réponse à suivre
Marsh Posté le 16-02-2005 à 18:11:03
frlp a écrit : je viens de tester sur free, le meme code, et les variables se récup nikel. |
Tu le test sur quoi ???
Je pense au serveur ou à la version de PHP installer pour peu que se soit une vieille version et ton $_GET deviendrait HTTP_GET_VARS un truc comme ça ...
Mais bon là dessus je m'aventure pas trop
Marsh Posté le 16-02-2005 à 18:15:16
bon revenons à nos moutons ^^
sky_striker a écrit : $_GET deviendrait HTTP_GET_VARS un truc comme ça ... |
bien vu
au fait, fan de gladiator ? strength & honor !
Marsh Posté le 16-02-2005 à 18:22:13
marche pas !
Je vois directement avec le support du serveur...
Merchi
Marsh Posté le 16-02-2005 à 19:04:16
Faut echapper tout ce qui peut servir de commentaire sous sql
Marsh Posté le 16-02-2005 à 20:01:04
soju a écrit : bon revenons à nos moutons ^^ |
Oui j'adore ce film ...
Marsh Posté le 17-02-2005 à 09:36:39
La réponse au dilemme.
la valeur du register_globals est sur off par défaut, il faut donc la mettre sur On dans le php.ini (mais cela active aussi une faille de sécurité).
Voila voila,
rien de grave quoi
Marsh Posté le 17-02-2005 à 09:41:57
frlp a écrit : La réponse au dilemme. |
Salut
Il y a un truc que je capte pas le register global c'est ce qui justement te permet d'accéder à tes variable via $_GET["evenement"]eu lieu de simplement $evenement. Donc ça devrait marché même si il est à off ...
Tu peux juste nous redonner le script qui va bien du coup. Il y a un truc que j'ai pas bien capté ou quoi ...
Marsh Posté le 17-02-2005 à 09:53:28
tout à fait d'accord avec la derniere remarque, dans la mesure ou tu utilise $_POST['ta_variable'], le register_global peux (et meme doit, de préférence) etre à OFF.
Marsh Posté le 17-02-2005 à 09:57:57
C'est bizard mine de rien ... Il a pourtant fait ca proprement on dirait ... Si t'essaie des les recuperer avec POST (et donc mettre la method="POST" ) ca plante toujours?
Marsh Posté le 17-02-2005 à 10:00:55
Au fait .. j'ai essayé de me retenir mais j'y arrive pas ... la balise <input> est une balise orpheline => <input />
idem pr <br> => <br />
Marsh Posté le 17-02-2005 à 10:02:58
esox_ch a écrit : Au fait .. j'ai essayé de me retenir mais j'y arrive pas ... la balise <input> est une balise orpheline => <input /> |
Je comprend pas où tu veux en venir ... Oui la balise input est orpheline et les siennes le son nan ???
Tu veux dire que c à cause de sa notation des balises que ça marche pas. Enfin moi je note comme lui et ça marche donc ...
Marsh Posté le 17-02-2005 à 10:07:48
qu'est-ce que ça peut faire que ces balises soit orpheline ??? le pb vient certainement pas de là, et surtout on a pas son doctype, s'il fait du HTML 4.01 trasitionnal, son code est valide comme ça...
Je suis dac pour insister sur un code propre est valide, mais comme on ne sait pas quel niveau de validation il a choisit... son code peut très bien etre correct...
Marsh Posté le 17-02-2005 à 10:12:09
Non non c'est pas ça qui fait que ça marche pas, c'est juste qu'en lisant le script ça m'a fait flash la balise input non fermée ... Et maintenant que tu le dis c'est vrai que le doctype manque aussi ... en fin bon c'etait juste pour que ca se présente mieux ... Mais honnetement j'ai aucune idée de pourquoi ca plante .. tu peux mettre les pages en ligne pour qu'on teste ? Des fois que l'erreur soit autre part
Marsh Posté le 17-02-2005 à 10:14:08
Moi je dirais surtout que filer le contenu d'une textarea en GET c'est pas supair Quand on envoi des informations qui ont des effets de bord (ici insertion dans une BDD), faut toujours mettre en POST, donc déjà on peut chercher de ce côté là
Marsh Posté le 17-02-2005 à 10:22:10
FlorentG a écrit : Moi je dirais surtout que filer le contenu d'une textarea en GET c'est pas supair Quand on envoi des informations qui ont des effets de bord (ici insertion dans une BDD), faut toujours mettre en POST, donc déjà on peut chercher de ce côté là |
En plus si il y a beaucoup de texte à transmettre ça risque de ne pas passer car il me semble que l'on est limité en taille avec cette méthode ...
Si connerie corriger SVP
Marsh Posté le 17-02-2005 à 10:22:54
Possible oui, et sans parler des caractère invalides dans une URL
Marsh Posté le 17-02-2005 à 10:23:56
Effectivement l'url est limitée, je crois justement que c'etait sur ce forum que qqn nous avait demandé de tester son site et que qqn lui avait envoyé toute les specification xhtml par url pour lui saturer la base de donnée
Marsh Posté le 17-02-2005 à 10:28:21
clair que t'a une limite par le GET, mais en fait t'en a une aussi en POST (bcp moins stricte il est vrai)...
En fait "théoriquement", un textarea n'a pas de limite, mais "pratiquement" les navigateurs sont prévu pour bloqué au-delà d'un certain tampon, qui si ma mémoire est bonne, est en général de 64KO, ce qui laisse quand meme de quoi écrire une sacré prose
Ceci provient de recherche sur le net d'il ya au moins un an (date à laquel je me suis penché sur le webmastering) et de ce qu'il en reste dans ma mémoire
--> faut prendre avec une certaine ralitivité, merci d'avance de votre indulgence
Marsh Posté le 17-02-2005 à 10:30:46
Xav_ a écrit : clair que t'a une limite par le GET, mais en fait t'en a une aussi en POST (bcp moins stricte il est vrai)... |
Mais supposes supposes donc à volonté un forum est un lieu d'échange et en ce moment c'est ce que nous faisons ...
Parfois il arrive que l'on échange des conneries c vrai mais on apprend plus qd on dit une connerie que qd on a raison ...
PS: dans ton cas je sais pas si c une connerie ou pas ...
Marsh Posté le 16-02-2005 à 16:25:19
J'ai un problème de récupération de données sur le code présent:
-------------------------------------------
PAGE 1
-------------------------------------------
<html>
<head></head>
<body>
<form action="admin_evenements2.php" method="get" name="fichier">
<p>Date :<br>
<input type="text" name="date">
<p>Evênement :<BR>
<textarea name="evenement"></textarea>
</p>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>
-------------------------------------------
PAGE 2
-------------------------------------------
Done
<?
include("config_db.php" );
$date = $_GET["date"];
$evenement = $_GET["evenement"];
mysql_query("INSERT INTO evenement(date,message) VALUES('$date','$evenement')" );
?>
-------------------------------------------
l'inscription dans la bdd se fait mais avec les champs vides.
Le probleme doit etre bénin...
Merci à vous,
frlp