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

 

 

 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10  11  12
Auteur Sujet :

Tuto des scripts PHP les plus demandés et des astuces.

n°1098214
Berceker U​nited
PSN : berceker_united
Posté le 26-05-2005 à 15:17:24  profilanswer
 

Reprise du message précédent :

FlorentG a écrit :

Mais comment ça qui passent à la trappe ?


Non en faite j'aurais pas du utiliser ce mot car il ne passe pas à la trappe mais en faite les caracteres particuliers peuvent passer d'une autre maniere au nez et à la barbe des fonctions qui sont censé l'intercepter. Mais bon il faut pas psychoter c'est quand même baleze, le prof a mis une journée et demie pour pondre le code et fait tomber 2 fois le serveur :). En prenant en compte que c'etais un responsable de la sécurité dans des grosses boite notament edf et sncf donc c'est pas un kéké :/!

mood
Publicité
Posté le 26-05-2005 à 15:17:24  profilanswer
 

n°1098258
ratibus
Posté le 26-05-2005 à 15:43:54  profilanswer
 

C'était bien en PHP qu'il faisait ça ?

n°1098271
Berceker U​nited
PSN : berceker_united
Posté le 26-05-2005 à 15:53:33  profilanswer
 

ratibus a écrit :

C'était bien en PHP qu'il faisait ça ?


:jap:
C'est pas le language qui est mis en cause car ils nous a confirmé que quelques soit le language, le faite qu'un élément saisi dans un champ puisse faire partie d'une requete sql est déjà une pate de loup dans la bergerie.

n°1098273
skeye
Posté le 26-05-2005 à 15:55:37  profilanswer
 

Berceker United a écrit :

:jap:
C'est pas le language qui est mis en cause car ils nous a confirmé que quelques soit le language, le faite qu'un élément saisi dans un champ puisse faire partie d'une requete sql est déjà une pate de loup dans la bergerie.


 
Si tu vérifies correctement l'input, pas de raison...franchement j'aimerais bien voir son truc.:o


---------------
Can't buy what I want because it's free -
n°1098293
ratibus
Posté le 26-05-2005 à 16:09:08  profilanswer
 

skeye a écrit :

Si tu vérifies correctement l'input, pas de raison...franchement j'aimerais bien voir son truc.:o

+1

n°1098295
FlorentG
Unité de Masse
Posté le 26-05-2005 à 16:10:15  profilanswer
 

Ouais, j'voudrais bien voir ça :heink:

n°1098342
ratibus
Posté le 26-05-2005 à 16:46:16  profilanswer
 

Il a la pression maintenant Berceker United :D

n°1098343
yoyo354
Yoyo, le roi du ...
Posté le 26-05-2005 à 16:47:10  profilanswer
 

Moi aussi, moi aussi....
 
NOTE : Ce qui est quand même incroyable, c'est que ton prof a pondu le code en "une journée et demie". Ce qui est très court quand même pour passer outre la sécurité de fonctions liés justement à la sécurité. Aufète, a-t-il au moins rapporter le bug ?

n°1098348
skeye
Posté le 26-05-2005 à 16:50:51  profilanswer
 

Moi jdis fake.:o
 
[edit]
 
Ou alors avec un vieux bug d'une vieille version pourrie de php...[:joce]


Message édité par skeye le 26-05-2005 à 16:51:15

---------------
Can't buy what I want because it's free -
n°1098350
cesarr89
Posté le 26-05-2005 à 16:52:09  profilanswer
 


 

skeye a écrit :

Moi jdis fake.:o
 
[edit]
 
Ou alors avec un vieux bug d'une vieille version pourrie de php...[:joce]


 
+1


Message édité par cesarr89 le 26-05-2005 à 16:52:38
mood
Publicité
Posté le 26-05-2005 à 16:52:09  profilanswer
 

n°1098372
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 26-05-2005 à 17:02:06  profilanswer
 

skeye a écrit :

Moi jdis fake.:o
Ou alors avec un vieux bug d'une vieille version pourrie de php...[:joce]


Ou d'apache, ou de mysql, c'est fort probable.
 

n°1098397
Berceker U​nited
PSN : berceker_united
Posté le 26-05-2005 à 17:18:00  profilanswer
 

Ben merci pour le fake les mecs :/ je prend mon temps pour dire ce que je sais et ce que j'ai vu, je me vois mal faire tous cela pour un fake ou que le prof est passé tous ce temps à faire une blague, je sais ce que j'ai vu.

n°1098401
yoyo354
Yoyo, le roi du ...
Posté le 26-05-2005 à 17:20:02  profilanswer
 

The-Shadow a écrit :

Ou d'apache, ou de mysql, c'est fort probable.


 
Soit une faille de php ou mysql(si celle-ci à bien existé :heink: ).Je ne vois pas vraiment le rôle d'apache dans l'échappement des caractères ou de la reqête.  

n°1098406
FlorentG
Unité de Masse
Posté le 26-05-2005 à 17:21:00  profilanswer
 

Ben c'est louche... Y'aurait soi-disant une faille dans mysql_real_escape_string ? Bah faut vite les prévenir alors :D

n°1098410
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 26-05-2005 à 17:22:11  profilanswer
 

yoyo354 a écrit :

Soit une faille de php ou mysql(si celle-ci à bien existé :heink: ).Je ne vois pas vraiment le rôle d'apache dans l'échappement des caractères ou de la reqête.


Parce que c'est Apache qui réceptionne les entêtes HTTP, mais je disais ça comme ça, sans voir la méthode, on ne peut que faire des suppositions.

n°1098655
push
/dev/random
Posté le 26-05-2005 à 20:14:26  profilanswer
 

[:zytrafumay]

n°1098667
yoyo354
Yoyo, le roi du ...
Posté le 26-05-2005 à 20:37:15  profilanswer
 

The-Shadow a écrit :

Parce que c'est Apache qui réceptionne les entêtes HTTP, mais je disais ça comme ça, sans voir la méthode, on ne peut que faire des suppositions.


Cela voudrait dire que si on utilise php en ligne de commande(on ne passe donc pas par apache), le tour de magie du prof ne fonctionne plus.  
 
De plus, je ne me suis pas renseigné sur la manière dont communique php et mysql, mais je pense que c'est le module php qui se connecte à mysql et non apache. Et ensuite, apache renvoit le résultat au client.  

n°1098684
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 26-05-2005 à 20:49:40  profilanswer
 

yoyo354 a écrit :

Cela voudrait dire que si on utilise php en ligne de commande(on ne passe donc pas par apache), le tour de magie du prof ne fonctionne plus.  
 
De plus, je ne me suis pas renseigné sur la manière dont communique php et mysql, mais je pense que c'est le module php qui se connecte à mysql et non apache. Et ensuite, apache renvoit le résultat au client.


Honnêtement, mes connaissances ne sont pas assez poussés pour te contredire, donc, disons que j'ai dis une connerie et qu'Apache n'a aucune faille et patati et patata.
 
en attendant, ça ne résout pas le problème, sans mettre sa parole en doute, j'ai un doute qu'une telle faille soit possible et qu'aucun des sites que je visite quotidiennement n'en ai jamais fait référence.

n°1098714
yoyo354
Yoyo, le roi du ...
Posté le 26-05-2005 à 21:04:36  profilanswer
 

The-Shadow a écrit :

Honnêtement, mes connaissances ne sont pas assez poussés pour te contredire, donc, disons que j'ai dis une connerie et qu'Apache n'a aucune faille et patati et patata.
 
en attendant, ça ne résout pas le problème, sans mettre sa parole en doute, j'ai un doute qu'une telle faille soit possible et qu'aucun des sites que je visite quotidiennement n'en ai jamais fait référence.


Mes connaissances ne sont pas également poussées... J'apprend juste sur le tas...
 
Moi aussi je doute qu'une faille de ce genre éxiste(ou soit connu) à l'heure actuelle. J'aimerais quand même voir ce que le prof à fait.

n°1098942
FlorentG
Unité de Masse
Posté le 26-05-2005 à 23:55:14  profilanswer
 

Peut-être un bug/feature comme celui-là

n°1099196
cerel
Posté le 27-05-2005 à 10:46:23  profilanswer
 

Hmmm, il y aura peut-etre quelque chose...
L'unique chose a laquelle je pense, qui pourrait poser probleme, est s'il y a un probleme d'encodage de la chaine.
 
En gros (choses a verifier car je suis pas sur a 100%) :
Le code ainsi va jusqu'a 127, un charactere est donc encode sur 7 bits.
Le code asscii va jusqu'a 255, un charactere est donc encode sur 8 bits.
 
Maintenant imaginons que mysql_real_escape_string n'echape que les characteres ainsi. Il va donc lire 7 bits, verifier si le charactere correspondant pose probleme, et le remplace s'il le faut.
Jusqu'a la pas de probleme.
 
Mais si maintenant mysql_query tavaille avec de l'ascii, alors cette fonction va lire 8 bits pour un charactere. Elle va donc, par consequent "prendre" 1 bit qui ne correspond pas au bon charactere.
 
Il suffirait de passer toute la table "ansi" a travers mysql_real_escape_string, de noter les bits d'entree, et les bits de sortie obtenus.
On affiche ensuite la table "ascii" et l'on regarde si avec les bits de sortie de mysql_real_escape_string on arrive a creer un charactere ascii qui aurait du etre echape.
 
On pourrait donc, en theorie, reussir a passer a travers de mysql_real_escape_string.
 
 
Tout ceci n'est que theorique, et se base principalement sur l'hypothese que les deux fonction ne travaillent pas sur le meme encoding.
Personellement je pense qu'il y a peut-etre eu un probleme a un moment donne, mais je pense que ce genre de probleme a du etre corrige depuis.
 
A noter, qu'il serait egalement possible d'effectuer une attaque similaire en utilisant l'ascii (8 bits, 1 byte) avec un autre encoding utilisant plus de bits (par exemple l'utf).
 
Il faudrait se renseigner pour voir si ce genre de problemes a ete corrige (je le pense fortement).


Message édité par cerel le 27-05-2005 à 10:47:22
n°1099205
skeye
Posté le 27-05-2005 à 10:51:06  profilanswer
 

cerel> J'y crois pas trop...
 
http://fr2.php.net/manual/fr/funct [...] string.php

Citation :


mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, en prenant en compte le jeu de caractères courant de la connexion link_identifier


Message édité par skeye le 27-05-2005 à 10:51:25

---------------
Can't buy what I want because it's free -
n°1099428
cerel
Posté le 27-05-2005 à 12:54:31  profilanswer
 

Ce que j'ai dit c'etait une eventuelle methode qui se basait sur ce que Berceker United avant dit.
Il faut egalement noter, que selon les dires de Berceker United, la demo de son prof date deja de 1-2 annees.  
Il est donc possible, que l'edit prof ai utilise une faille corrigee depuis.
 
Et puis dans ma theorie le fait que mysql_real_escape_string respecte l'encodage n'est pas le probleme.
L'eventuel probleme viendrait du non respect de la part de mysql_query. Si lui ne respecte pas le meme encodage, alors il y a moyen de berner mysql_real_escape_string.

n°1102713
Berceker U​nited
PSN : berceker_united
Posté le 31-05-2005 à 11:51:39  profilanswer
 

24 -  :( PphPy ! Comment je fais pour savoir à coup sur de quel page provient le visiteur ?
 
 [:papy] ET là j'en suis sur qu'il y a plein de corbac qui vont me sortir qu'il y a une variable d'environnement qui permet de le savoir via la variables d'environnement $_SERVER. Le problème c'est que certain firewall bloque cette information. Pour y remedier il y a un moyen simple.
 

Code :
  1. <?php
  2. echo $_SESSION['from'];
  3. .... //Corps du fichier.
  4. $_SESSION['from'] = $_SERVER['SCRIPT_NAME'];
  5. ?>


 
Il est important de le mettre en bas de page, via cette methode cela permet de controler, par exemple, la provenance des données venant d'un champ de formulaire. Ben oui, qui vous empeches de faire une page html sur votre machine sans serveur et faire le poste sur un serveur distant qui ne contrôle pas.

n°1119970
Berceker U​nited
PSN : berceker_united
Posté le 14-06-2005 à 20:11:23  profilanswer
 

25 - [:jofusion] Comment réaliser un diaporama de photos ?

Code :
  1. <?php
  2. $arrFichier = array();
  3. $i=0;
  4. $directory='images/';
  5. // Ouvre un dossier bien connu, et liste tous les fichiers
  6. if (is_dir($directory)) {
  7.   if($dh = opendir($directory)) {
  8.     while (($file = readdir($dh)) !== false) {
  9.      $extension = pathinfo($directory.$file);
  10.       if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
  11.         $arrFichier[$i] = $file; //PLace les fichier dans un tableau
  12.         $i++;
  13.       }
  14.     }
  15.   }
  16.   closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
  17. }
  18. //Initalisation.
  19. if($_GET['index']!=''){
  20.   $index = $_GET['index'];
  21. }else{
  22.   $index = 0;
  23. }
  24. //Affichage des liens précédent et suivant.
  25. if($index > 0){ //N'affiche pas le boutton au premier
  26.   echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
  27. }
  28. echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image
  29. if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
  30.   echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
  31. }
  32. ?>


Message édité par Berceker United le 14-06-2005 à 20:17:57
n°1120000
FlorentG
Unité de Masse
Posté le 14-06-2005 à 20:30:54  profilanswer
 

Si tu pourrais faire une version qui fonctionne sans JS, ce serait top ;)

n°1120004
FlorentG
Unité de Masse
Posté le 14-06-2005 à 20:33:50  profilanswer
 

D'ailleurs attend... attend attend attend attend attend.
 
NE ME DIT PAS QUE TES PAUVRE BOUTONS JS NE FONT RIEN D'AUTRE QU'UN LIEN NORMAL §§§§§§§
 
:D :D :D

n°1120010
Berceker U​nited
PSN : berceker_united
Posté le 14-06-2005 à 20:38:39  profilanswer
 

[:b-s]


Message édité par Berceker United le 14-06-2005 à 20:40:20
n°1120062
Berceker U​nited
PSN : berceker_united
Posté le 14-06-2005 à 21:40:48  profilanswer
 

26 - Un string est un tableau de char.
Un string
http://www.objectifbeaute.com/images_la_redoute/string_uni.jpg
est un tableau
http://www.firstworldwar.com/battles/graphics/schneidertank.jpg
http://www.firstworldwar.com/battles/graphics/schneidertank.jpg
http://www.firstworldwar.com/battles/graphics/schneidertank.jpg
de char
[:atlantis] hein!  
Héé Tonton fait tourner c'est d'la bonne :D.
 [:papy] Mais non espece de corniaux. tu mériterais un retour de canne dans ta face boudiou.
Que j't'explique "du Corbac".
 
dans les languages de programmations il y a que quelque type primitifde concernant les variables.
Int
Boolean
Short
Float
Char
Double
Long
Byt
 
Mais il y a pas de type "string" donc le language fait un tableau d'une suite de char.
Exemple :

Code :
  1. $str = "Je suis un gros corniau";
  2. for($i=0;$i<strlen($str);$i++){
  3.   echo $str[$i].'<br>';
  4. }


Va afficher :
J
e  
 
s
u
i
s
 
u
n
 
g
r
o
s
 
c
o
r
n
i
a
u
 
Cela peut servir lorsque vous avez besoin de faire des traitements de chaine.


Message édité par Berceker United le 15-06-2005 à 00:43:34
n°1120263
skeye
Posté le 15-06-2005 à 08:23:46  profilanswer
 

En php il n'y a ni string ni char...:o


---------------
Can't buy what I want because it's free -
n°1120329
Berceker U​nited
PSN : berceker_united
Posté le 15-06-2005 à 09:34:47  profilanswer
 

Si tu fais un gettype de ta chaine il va te ressortir "string"  mais ceci est propre à php.

n°1120845
Berceker U​nited
PSN : berceker_united
Posté le 15-06-2005 à 14:48:20  profilanswer
 

27 - $i++ ou ++$i ? Chose importante à savoir et à comprendre!
 [:papy] Bande d'inutile , vous êtes beaucoup à faire :

Code :
  1. for($i=0;$<nb_neuronnes;$i++){
  2. ...
  3. }


sans comprendre le $i++.  
$i++; équivant à écrire :

Code :
  1. $i = 0;
  2. $i = $i+1;


Mais attention il y a un truc à savoir.

Code :
  1. $i=0;
  2. echo $i++;
  3. //Affiche 0
  4. $i=0;
  5. echo ++$i;
  6. //Affiche 1


 
Autre chose à connaitre [:papy].
Parfois nous avons besoin de faire une réaffection sur la même variable.
Ex:

Code :
  1. $neuronne = 10;
  2. $neuronne = $neuronne+13;
  3. //Equivaut à écrire :
  4. $neuronne+=13;
  5. //Qui affichera 23


Il est possible de faire la meême chose pour la soustraction(-) , multiplication (*), ...

n°1121400
axk47
Java Man vs Boolet Man
Posté le 15-06-2005 à 23:42:27  profilanswer
 

Berceker United a écrit :

25 - [:jofusion] Comment réaliser un diaporama de photos ?

Code :
  1. <?php
  2. $arrFichier = array();
  3. $i=0;
  4. $directory='images/';
  5. // Ouvre un dossier bien connu, et liste tous les fichiers
  6. if (is_dir($directory)) {
  7.   if($dh = opendir($directory)) {
  8.     while (($file = readdir($dh)) !== false) {
  9.      $extension = pathinfo($directory.$file);
  10.       if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
  11.         $arrFichier[$i] = $file; //PLace les fichier dans un tableau
  12.         $i++;
  13.       }
  14.     }
  15.   }
  16.   closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
  17. }
  18. //Initalisation.
  19. if($_GET['index']!=''){
  20.   $index = $_GET['index'];
  21. }else{
  22.   $index = 0;
  23. }
  24. //Affichage des liens précédent et suivant.
  25. if($index > 0){ //N'affiche pas le boutton au premier
  26.   echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
  27. }
  28. echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image
  29. if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
  30.   echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
  31. }
  32. ?>



 
 
merci beaucoup ton script me permettra de parfaire mon diaporama.
car je me rend compte que le code que j'avais n'étais pas très loin du tien.
Donc ton script me permettra d'y voir plus clair.
 
A pluch


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
n°1121413
Berceker U​nited
PSN : berceker_united
Posté le 16-06-2005 à 00:21:51  profilanswer
 

http://mapage.noos.fr/berceker_united/phpman.jpg
http://mapage.noos.fr/berceker_united/phpman2.jpg
http://mapage.noos.fr/berceker_united/xor1.jpg
http://mapage.noos.fr/berceker_united/xor2.jpg


Message édité par Berceker United le 16-06-2005 à 00:23:50
n°1121421
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 16-06-2005 à 01:16:04  profilanswer
 

Berceker United a écrit :

25 - [:jofusion] Comment réaliser un diaporama de photos ?

Code :
  1. <?php
  2. $arrFichier = array();
  3. $i=0;
  4. $directory='images/';
  5. // Ouvre un dossier bien connu, et liste tous les fichiers
  6. if (is_dir($directory)) {
  7.   if($dh = opendir($directory)) {
  8.     while (($file = readdir($dh)) !== false) {
  9.      $extension = pathinfo($directory.$file);
  10.       if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
  11.         $arrFichier[$i] = $file; //PLace les fichier dans un tableau
  12.         $i++;
  13.       }
  14.     }
  15.   }
  16.   closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur



Un simple glob aurait suffit non ?

Code :
  1. foreach (glob($directory."*.jpg" ) as $filename) {
  2.         $arrFichier[$i] = $filename;
  3.         $i++;
  4. };


n°1121428
Puissance ​Athlon XP
Posté le 16-06-2005 à 01:45:31  profilanswer
 

The-Shadow a écrit :

Un simple glob aurait suffit non ?

Code :
  1. foreach (glob($directory."*.jpg" ) as $filename) {
  2.         $arrFichier[$i] = $filename;
  3.         $i++;
  4. };



 
Ah ouais tiens pratique ce truc :jap:

n°1121481
ratibus
Posté le 16-06-2005 à 08:40:52  profilanswer
 

Encore plus rapide :D

Code :
  1. foreach (glob($directory."*.jpg" ) as $filename) {
  2.    $arrFichier[] = $filename;
  3. }

n°1121597
Berceker U​nited
PSN : berceker_united
Posté le 16-06-2005 à 10:17:24  profilanswer
 

Ratibus the winner  [:bigoudi33]  
 
Je vais le placer et proposer cette autre alternative.
Merci!

n°1121637
flo850
moi je
Posté le 16-06-2005 à 10:46:04  profilanswer
 

ratibus a écrit :

Encore plus rapide :D

Code :
  1. foreach (glob($directory."*.jpg" ) as $filename) {
  2.    $arrFichier[] = $filename;
  3. }



 
 
pas mal le glob  
$arrFichier[] = $filename c'est equivalent a $arraFichier = array_push($arrFichier,$filename); ?  
 
 [:youyou2224]


---------------

n°1121644
ratibus
Posté le 16-06-2005 à 10:49:25  profilanswer
 

flo850 a écrit :

pas mal le glob  
$arrFichier[] = $filename c'est equivalent a $arraFichier = array_push($arrFichier,$filename); ?  
 
 [:youyou2224]

Oui cf http://fr2.php.net/array_push ;)

n°1121702
skeye
Posté le 16-06-2005 à 11:16:09  profilanswer
 

flo850 a écrit :

$arrFichier[] = $filename c'est equivalent a $arraFichier = array_push($arrFichier,$filename); ?  
 
 [:youyou2224]


Oui.


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10  11  12

Aller à :
Ajouter une réponse
 

Sujets relatifs
controles des champ et correction du formulaire PHP[PHP]Récupèrer une ressource d'un autre site et l'exploiter
Php et Html[HTML/PHP] Réaliser une message box
jpgraph et phpCode source d'un fichier PHP
Pervasive SQL et php[PROB] PHP debutant - Retour a la ligne
page précédente en phpRSS et PHP
Plus de sujets relatifs à : Tuto des scripts PHP les plus demandés et des astuces.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR