LA GLOBULE

Inscris le 25/09/2002 à 10:40
  • Site web
  • Nombre de sujets
    47
  • Nombre de messages
    8 345
  • Nombre de commentaires
    142
  • Nombre de news
    8 346
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

LA GLOBULE
le 07/01/2005 à 09:50
XSS
smiley

Voilà, c'était mon second message pour me faire encore plus d'amis :)


Ce n'est pas ici qu'on te lynchera :)

En effet, si je note dans la barre d'adresse : http://3hphp.lephpfacile.com/forums/new_topic.php?f=4' and id='5

La variable id sera conservée durant ma navigation.


Oui, je vois de quoi tu parles.
La variable id sera conservée dans la navigation, mais si je regarde le code source du site, cela n'influencera pas sur le forum (a priori).

En effet, avant de poster sur un forum, je prend toujours le soin de tester le type de données attendu, et de lancer une petite requete SQL afin de vérifier si les paramètres qui arrivent au script sont "valides", c'est à dire si $_GET['f'] existe bien dans ma base de données (de meme pour $_GET['id'] dans le cas d'une reponse à un sujet, id etant le sujet).
Si la requete SQL ne donne aucun résultat (numero de forum inconnu dans la base, ou sujet inconnu dans la base, ou sujet qui ne correspond pas au bon forum), on tombe sur une page de ce genre :

http://www.lephpfacile.com/forums/read_msg.php?f=3&id=2928

Le probleme de la variable qui se conserve vient de l'affichage page par page (si tu regardes les news et que tu ajoutes un paramètre à l'URL celui la aussi sera conservé).
En effet, pour adapter ce script à toutes les pages possibles d'un site, je prend tous les parametres de l'URL, auxquels j'ajoute le parametres "debut" qui sert à faire mes LIMIT.

Alors c'est vrai que si l'on ajoute un parametre à l'URL, celui si se conservera tant que l'on ferra fonctionner le "page par page", et cela peut amener à des trous de sécurité si on ne fais aucun test (du moins sur les variables que l'on utilise).

En fait, le problème, c'est que j'analyse "que" les variables qui me sont necessaire au script, sans regarder si d'autres variables ont étées passé au script (ces autres variables se "balladant" mais n'étant pas utilisées).

Bref, pour finir :

Donc j'ai deux requêtes :
1 - néttoyer les variables en entrées (toutes, _COOKIE inclu car on peut trafiquer leur contenu) ou refuser ce qui ne correspond pas au motif attendu.
2 - Ne plus donnéer d'exmple de codes qui font directement utiliser les valeurs des variables en entré.


Je le ferais, promis :)
D'ailleurs en ce qui concerne les exemples, tous les cours sont en train d'etre refait :)
LA GLOBULE
le 06/01/2005 à 17:10
afficher un champ d'une table suite a un lien
tintindelacite, tant que tu feras que des copier coller de tout ce que l'on te donne sans réfléchir au problème, on ne pourra pas s'en sortir.

Tu veux afficher les détails d'un élément de la table ou tous les détails de tous les elements de la table (dans ta seconde page) ? (les détails étant le champ texte si j'ai bien compris).

1) affichage des détails d'un element :
Quand tu affiches tes éléments, donc dans le while qui affiche les données de la base, place un lien du genre :
<a href="details.php?id=id_de_l_element">Voir détails</a>
Ensuite, dans la page details.php, tu recuperes $_GET['id'] et tu fais une requete du genre :
$sql = 'SELECT texte FROM table WHERE id='.$_GET['id'];

2) Affichage de tous les details de tous les elements
Il te suffit d'afficher UN seul lien sur ta premiere page (et pas dans le while), exemple :
<a href="details.php">Voir details</a>

Puis dans la page details, tu lances une requete du genre :
$sql = 'SELECT texte FROM table';
LA GLOBULE
le 06/01/2005 à 15:36
afficher un champ d'une table suite a un lien
Mon problème maintenant c'est que j'affiche tous les champs textes et pas celui qui rorrespon au titre...


Ben fait un test et lance ta requete SQL.

Si $_GET['detail'] est la, alors lance une requete du genre :

SELECT champ_details FROM table.
LA GLOBULE
le 06/01/2005 à 14:54
afficher un champ d'une table suite a un lien
Houla, j'ai peur qu'on ne s'en sorte pas la smiley

Il manque déjà la balise fermante de ton lien.

Si tu veux un conseil, essaye déjà te faire ton truc sans pop up (tu verras çà apres, ce n'est pas important pour le moment).
La priorité, c'est de faire ton lien qui te permette d'afficher des "détails".

Donc l'idée, c'est de faire un lien avec un paramètre que tu passeras par la barre d'adresse, exemple :

<a href="page.php?detail=1">+ de details</a>

Ensuite, dans la page page.php, tu vas tester l'existence de la variable $_GET['detail'] et vérifier qu'elle vaut bien 1.
Si c'est le cas, alors tu vas lancer ta requete SQL qui va "chercher" les details et il te restera juste à les afficher.

Exemple :

<?php
if (isset($_GET['detail']) && $_GET['detail'] == 1) {
// ta requete SQL qui va chercher les details
}
else {
// soit toto n existe pas, soit il a une valeur differente de 1
}
?>


(enfin, si je pense avoir bien compris ton probleme)
LA GLOBULE
le 06/01/2005 à 14:47
des jeux sur un site
En gros, tu veux lancer un Doom 3 sur ton site le tout en openGL c'est çà ? smiley

Nan, sans rire, à moins de passer par une applet java, par du flash, par du javascript, ou alors en développant un jeu "réalisable" en PHP (jeu de plateau par exemple), il n'y a pas grand chose à faire pour amuser ses visiteurs.

Mais tu ne pourras pas lancer un jeu à partir d'un éxecutable si les visiteurs ne l'installent pas.
LA GLOBULE
le 06/01/2005 à 14:41
afficher un champ d'une table suite a un lien
Ce code n'est pas de moi.

Il est de jerem, un pote qui m'a filé ce code il y a quelques années maintenant, depuis, je le traine partout, et c'est le seul truc que je sais faire en javascript :)

PS : en meme temps, je ne sais pas trop si ce code représente ce qu'attendait tintindelacite...
LoadingChargement en cours