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

  FORUM HardWare.fr
  Programmation

  PHP et sécurité

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP et sécurité

n°188732
electroger
Posté le 02-08-2002 à 13:30:03  profilanswer
 

Salut tout le monde! J'ai vu sur plusieurs site des histoires de trous de sécurité dans des site en php... J'amerais savoir de quoi il sagit exactement et comment faire pour que son site soit sécurisé.  
Merci d'avance

mood
Publicité
Posté le 02-08-2002 à 13:30:03  profilanswer
 

n°188734
art_dupond
je suis neuneu... oui oui !!
Posté le 02-08-2002 à 13:36:41  profilanswer
 

ben déjà mettre la dernière version je pense (parce qu'il y avait un problème dans une des versions précédentes)
 
 
 


Message édité par art_dupond le 02-08-2002 à 13:39:17

---------------
oui oui
n°188757
electroger
Posté le 02-08-2002 à 14:06:01  profilanswer
 

Euh... la dernière version de koi? Moi, je pensais que le trou de sécu se trouvait dans le code... Enfin, je sais pas trop, j'y connais rien en php.

n°188840
BMenez
Posté le 02-08-2002 à 16:02:25  profilanswer
 

2 sources de problèmes : l'interpréteur PHP (c'est là qu'il faut utiliser la dernière version car certaines contiennent des fonctions pas très secure et activées par défaut) et le code proprement dit. En général, il s'agit de Buffer Overflow, c'est à dire que par exemple si tu rentres une chaine de caractère trop longue dans une variable, tu dépasses la taille de la variable et tu écrases ce qui se trouve en mémoire. Cela provoque un pétage de plombs de l'interpréteur et tu peux exécuter du code qui n'est pas prévu à l'origine.

n°195869
electroger
Posté le 16-08-2002 à 01:35:18  profilanswer
 

Par exemple : j'ai une page avec un peu de texte et deux tableaux assez important. Quand j'essai de le lire, le navi tente a plusieurs reprises de l'afficher, mais n'y paevient jamais :
1- Soit il fait "impossible d'afficher la page.
2- Ou, il fait pleins d'erreurs (style, case decallées etc.)
Ca veut dire koi exactement? Et comment regler ce problême.

n°195870
Olivier51
Posté le 16-08-2002 à 01:38:18  profilanswer
 

bizarre comme erreur je ne pense pas que ça viennent du PHP, tu as beaucoup de PHP sur ta page ???
 
C'est une erreur du php qu'on te sort ???

n°195871
electroger
Posté le 16-08-2002 à 01:42:19  profilanswer
 

Ba je sais pas (j'y connais pas grand chose) mais j'utilise le php que pour faire des includes (pour l'instant). En fait, ma page et un fichier *.php3 mais qui ne contient que du texte et des tableaux... D'ailleurs, je vois même pas ce que tu entend pas erreur de php...  :sarcastic:

n°195873
zion
Plop
Posté le 16-08-2002 à 02:02:50  profilanswer
 

Utilise pas PHP alors si c'est que pour des include
 
http://httpd.apache.org/docs/mod/mod_include.html


---------------
Informaticien.be - Lancez des défis à vos amis
n°195875
Olivier51
Posté le 16-08-2002 à 02:21:56  profilanswer
 

En plus il y a même pas besoin de mettre du PHP sur son site, la seul contraine de cette méthode est d'être sur serveur Apache, mais t'inquiète electroger, les serveurs Windows sont en voie de disparition  :D  
 
Je trouve bizarre cette mode de dire qu'on c'est faire du PHP, parce qu'on a fais son site à l'aide de la fonction include() du PHP ...

n°195877
Vadrigar
Posté le 16-08-2002 à 02:35:44  profilanswer
 

Mouarf je pensais etre tombé sur le topic que je cherchais. En fait je pensais que l'on y aurait repertorié toute les failles que peut contenir du code de debutant en php.
 
Par exemple mon site a ete pirater 2 fois...  
1 fois a cause de la version rc2 de phpbb, une connerie.
1 fois a cause d'une histoire de variable pas protégé qui permettait au pirate d'inclure sur mon site une page a lui qui permet d'afficher la valeur des variable, comme $user et $pass si vous voyez ce que je veut dire -_-  
 
Alors voila ca serait sympa que certain dise les trucs a faire pour que son code ne contienne pas de faille evidente.

mood
Publicité
Posté le 16-08-2002 à 02:35:44  profilanswer
 

n°195878
zion
Plop
Posté le 16-08-2002 à 02:39:33  profilanswer
 

Olivier51 a écrit a écrit :

En plus il y a même pas besoin de mettre du PHP sur son site, la seul contraine de cette méthode est d'être sur serveur Apache, mais t'inquiète electroger, les serveurs Windows sont en voie de disparition  :D  
 




 
C'est bien, on vient d'apprendre que Windows est un serveur web... Et qu'Apache n'existe pas sous Windows  :ouch:


---------------
Informaticien.be - Lancez des défis à vos amis
n°195881
Vadrigar
Posté le 16-08-2002 à 02:58:17  profilanswer
 

Pour en revenir a mon prob du 2eme piratage. On m'a dit qu'il falait que j'empeche une page de s'executer sur mon site si elle n'etait pas sur la racine du site. Mais comment on fais pour ca ?  
 
J'avais penser a utilisé un otre moyen, cad ouvrir une session a l'index du site, puis d'ouvrir la page seulement si la session est ouverte. Le prob c'est que ca empeche les visiteurs d'acceder a une otre page que l'index directement...

n°195884
ethernal
Chercheur de vérité...
Posté le 16-08-2002 à 04:30:42  profilanswer
 

electroger a écrit a écrit :

Salut tout le monde! J'ai vu sur plusieurs site des histoires de trous de sécurité dans des site en php... J'amerais savoir de quoi il sagit exactement et comment faire pour que son site soit sécurisé.  
Merci d'avance




 
je connais (pour les avoir testé :D) 2 grosses failles de programmation :

  • les includes

facile à deviner... si tu fais une inclusion de fichier incluant un fichier en fonction de ce qui est passé dans l'url, tu dois bien tester le nom du fichier à inclure et exclure tout les / au minimum de ce nom.
ex:
url= index.php?menu=mapage.php
 
include('header.php';);
include($menu);
include('footer.php';);
 
si c'est sur ton serveur, je peux remonter jusqu'à ton /etc/password (fichier des pwd sous Linux)
 

  • les uploads de fichiers

- si tu ne testes pas le type de fichier que tu permets d'uploader (une image par ex) je peux uploader du code php qui me permet de rentrer sur ton pc.
- si tu ne testes pas le nom du fichier uploadé et que tu le recopies tel quel sur le disque, je peux uploader (et écraser)du code php qui me permet de rentrer sur ton pc.
 
voila ;)  
alors codez bien !


---------------
...oups kernel error...
n°195887
electroger
Posté le 16-08-2002 à 07:54:56  profilanswer
 

Ca a l'air compliqué tout ça...  :ouch:  
Au passage Olivier51, si tu trouve un endroit ou je dis savoir codé en php... Je sais pas ou tu va chercher ça! Mais effectivement tu peux légitimement trouver ça bizard...
Bon, moi je comprend rien... J'avais laissé sur ce forum, un message pour savoir quel était le meilleur moyen de faire un site en partant d'un tableau (case gche > sommaire, centrale> page principale etc.), ben... la reponse était claire : PHP. Et maintenant, on me dis non, c'est pas la peine!  :heink:

n°195894
gm_superst​ar
Appelez-moi Super
Posté le 16-08-2002 à 08:54:31  profilanswer
 

Olivier51 a écrit a écrit :

En plus il y a même pas besoin de mettre du PHP sur son site, la seul contraine de cette méthode est d'être sur serveur Apache, mais t'inquiète electroger, les serveurs Windows sont en voie de disparition  :D



Apache 2 est largement plus performant qu'Apache 1.3 sur les plateformes Windows. Il va en falloir un peu plus pour se débarasser de Windows ;)

Olivier51 a écrit a écrit :

Je trouve bizarre cette mode de dire qu'on c'est faire du PHP, parce qu'on a fais son site à l'aide de la fonction include() du PHP ...



Ben les SSI c'est bien mais encore faut-il que le seveur les supporte. Ce qui n'est peut-être pas le cas de son hébergeur. Dans ce cas, pas d'autres choix que d'utiliser PHP.

n°195963
Olivier51
Posté le 16-08-2002 à 12:46:20  profilanswer
 

Citation :

C'est bien, on vient d'apprendre que Windows est un serveur web... Et qu'Apache n'existe pas sous Windows  


 
C'est vrai j'ai écris Windows, mais je vous parler du serveur de Microsoft, pardon ...
 

Citation :

Au passage Olivier51, si tu trouve un endroit ou je dis savoir codé en php... Je sais pas ou tu va chercher ça! Mais effectivement tu peux légitimement trouver ça bizard...  


 
C'est vrai que dans ton message electroger, tu ne dis pas savoir programmer en PHP, mais je ne parlais pas pour toi, je parlais pour des personnes que j'ai vu sur ce forum et sur d'autres forums, re: pardon ...
 
Il faudrait que j'arrête de poster la nuit, ça me fais écrire de posts qui sont à chaque fois contesté ...
 

n°196121
electroger
Posté le 16-08-2002 à 20:07:32  profilanswer
 

C'est pas grave Olivier51  :D , mais je ne prétends absoluement pas savoir coder en php.
Pour info, mon herbergueur c'est free... Alors vous en pensez koi de tout ça? Perso, je commence à être serieusement perdu avec tous ces termes barbares que vous employés...

n°196184
electroger
Posté le 17-08-2002 à 01:17:27  profilanswer
 

Concretement, qu'es sont les risques avec les trous de sécu? (piratage? etc)

n°196190
Vadrigar
Posté le 17-08-2002 à 01:45:12  profilanswer
 

Bah les risques c'est pas compliqués, ils peuvent TOUT t'effacés, c'est pour ce qu'un webmaster d'un site qui commence a avoir de l'importance doit faire regulierement des backup de la bdd et du ftp.
 
Moi ce qui m'interesse, c'est les erreurs a pas faire.
 
Pour ta solution ethernal c'est pas mal mais en general je classe tt mes fichiers a inclure dans un rep inc donc mes url sont du genre ?url=inc/page.php. En plus je pense que ca resout pas le trou de securité des includes que les gars ont utilisé pour hacker mon site la 2eme fois. Qqs m'avait dit qu'il faut codé sa variable d'include, ou mettre un id mais je sais pas coment on fait.
Qqn peut m'eclairer plz ?

n°196193
electroger
Posté le 17-08-2002 à 01:53:20  profilanswer
 

J'arrive pas a comprendre comment ça peut arriver... Ba, ouais, comme un hacker peut tout effacer sans avoir le login et le code de mon site?  :heink:

n°196195
Vadrigar
Posté le 17-08-2002 à 02:44:19  profilanswer
 

Bah si justement grace a la faile il chope le code et le login. T'as pas du encore en faire mais quand tu fais une requete vers une base de donnée, tu dois indiquer ton login et ton pass qui sont stoqués dans une variable.
 
Maitenant si j'en crois ethernal on peut aussi avoir ton code en incluant /etc/password...
 
Mais ds tt les cas ils doivent avoir tes codes pour suprimer ou modifier tes fichiers.

n°196197
Vadrigar
Posté le 17-08-2002 à 02:50:34  profilanswer
 

[HS] C'est normal que je ne vois pas l'avatar des membre dans le forum programmation ?

n°196204
ethernal
Chercheur de vérité...
Posté le 17-08-2002 à 09:00:27  profilanswer
 

Vadrigar a écrit a écrit :

 
Moi ce qui m'interesse, c'est les erreurs a pas faire.
 
... je classe tt mes fichiers a inclure dans un rep inc donc mes url sont du genre ?url=inc/page.php.




 
là tu es mal barré ;)
php autorise l'include d'un fichier situé sur un autre serveur... ce qui veux dire qu'avec ton système url=inc/page.php je peux inclure un fichier sur un autre serveur web qui contient  

Code :
  1. $fp= fopen('index.php','r');
  2.   $content= fread($fp, filesize('index.php') );
  3.   fclose($fp);
  4.   echo $content;


j'affiche le contenu, je peux déjà le modifier (avec un fwrite) si je veux...
et ainsi de suite jusqu'à récupérer le login et pwd, puis je fais ce que je veux par ftp :D
 
Sécurité = tout mettre dans des tableaux !

Code :
  1. $menu= array('index' => 'index.php',
  2.      'news' => 'news.php');
  3. switch($url){
  4.    case 'index' : include ($menu[$url]); break;
  5.    case 'news' : include ($menu[$url]); break;
  6.    default : include ($menu['index']);
  7. }


ou plus simplement:

Code :
  1. $menu= array('index' => 'index.php',
  2.      'news' => 'news.php');
  3. if (!@include($menu[$url])){
  4.   include ('error.php');
  5. }


 
c tot con, et avec ça pas moyen de passer outre ;)


---------------
...oups kernel error...
n°196205
ethernal
Chercheur de vérité...
Posté le 17-08-2002 à 09:05:53  profilanswer
 

si tu veux une explication plus détaillée : http://www.newshackers.com/?nh=faillephp


---------------
...oups kernel error...
n°196258
electroger
Posté le 17-08-2002 à 13:00:09  profilanswer
 

Ben, moi j'utilise le php rien que pour les includes, parce que je voulais faire un site qui avait pour base un tableau (sommaire / page principale ...). Mais je ne pense pas que mon code contient mon login et code... Donc je ne devrais pas avoir de prob? Il y a comme même mon forum (phpBB2  :)  ) qui contient code et login de mon compte multimania (site sur free et forum sur multi). Alors est ce qu'il y a un risque pour mon forum?

n°196266
ethernal
Chercheur de vérité...
Posté le 17-08-2002 à 13:26:24  profilanswer
 

il y a pas que les login et pwd, même sans eux avec cette faille tu modifies, uploads, effaces ce que tu veux sur ton site.
donc oui, tu risques gros ;)
 


---------------
...oups kernel error...
n°196293
electroger
Posté le 17-08-2002 à 14:21:15  profilanswer
 

Je viens de lire ton lien Ethernal et je dois bien avouer que je suis surpris par les possibilités qu'offrent les includes au hacker...  :ouch:  Comment puis-je sécuriser mon site?

n°196294
Vadrigar
Posté le 17-08-2002 à 14:21:41  profilanswer
 

Hum je fais jamais de switch alors chui larguer pour le tableau...
 
J'ai lu l'article de newshackeur et moi mon code etait proteger contre ca.
Je ne donne jamais a la valeur de ma variable un nom de page direct mais news pour news.htm par exemple. Ensuite sur la page de la pseudo frame (centre.php) je verifie avec:
 

<?
if ($page=='news') {include('news.php3');}
elseif ($page=='formulaire') {include('formulaire.php3');}
else {include('defaut.php3');}
?>


 
Si le gars veut m'envoyer une page du type hacker.htm il n'y aura aucune condition qui sera realisé et il se retrouvera avec defaut.php3.

n°196302
electroger
Posté le 17-08-2002 à 14:34:02  profilanswer
 

Moi mon include centrale est du type :
 <?
////////////////////////////////////////////////
// ----- PARTIE CENTRALE DYNAMIQUE -------------
 
if (!isset($page_centre)) $page_centre="accueil";
if (!isset($rep_rubrique)) $rep_rubrique="";
else
{
$rep_rubrique.="/";
}
if (file_exists("$rep_rubrique$page_centre.php3" ))
{
include ("$rep_rubrique$page_centre.php3" );
}
else
{
include ("404.html" );
}
 
// ---------------------------------------------
////////////////////////////////////////////////
?>
 
Les conditions sont gérées de facon assez bizard, cad que chaque page n'a pas de condition, mais est gerée de facon générique par le script (putain, meme moi, je peux faire des phrases complexe...  :D )
 
J'ai fait un petit test :
par exemple pour accedez a ma page1 dans le dossier "supercool" je fait (dans un reseau local) :
http://localhost/projet1/?rep_rubr [...] ntre=page1
 
maintenant j'ai remplacé page1 par http://www.google.fr :
http://localhost/projet1/?rep_rubr [...] google.fr/
 
Ben dans ce cas je tombe sur la page 404.htm de mon site!  :)  
Alors vous en pensez koi?

n°196306
ethernal
Chercheur de vérité...
Posté le 17-08-2002 à 14:39:56  profilanswer
 

electroger a écrit a écrit :

 
maintenant j'ai remplacé page1 par http://www.google.fr :
http://localhost/projet1/?rep_rubr [...] google.fr/
 
Ben dans ce cas je tombe sur la page 404.htm de mon site!  :)  
Alors vous en pensez koi?




 
je dis hackable normalement... ;)
(faut voir si file_exists fct avec des remotes files
 
une page au hasard :
http://localhost/projet1/?rep_rubr [...] centre=ftp


Message édité par ethernal le 17-08-2002 à 14:40:34

---------------
...oups kernel error...
n°196308
electroger
Posté le 17-08-2002 à 14:44:29  profilanswer
 

Ben en testant ta page je tombe encore sur le 404.
a noter : le site n'est pas encore sur le net (d'ou le localhost) je le lis avec un serveur Apache.  
Alors t'en pense koi? Tu pense toujours que c'est hackable?

n°196310
ethernal
Chercheur de vérité...
Posté le 17-08-2002 à 14:46:46  profilanswer
 

exact :)
http://www.php.net/manual/en/function.file-exists.php
 

Citation :

This function will not work on remote files; the file to be examined must be accessible via the server's filesystem


 
ça devrait être bon alors ;)


---------------
...oups kernel error...
n°196313
electroger
Posté le 17-08-2002 à 14:49:41  profilanswer
 

C'est bon? C'est pas hackable?  :)  
Si c'est le cas c'est cool et ça veut dire que j'ai fait le bon choix quand j'ai choisi le script! (eheh je sais pas du tout programmer mais je fais les bon choix!!  :) )
Autrement pour le phpBB2 y a pas de risques?

n°196316
ethernal
Chercheur de vérité...
Posté le 17-08-2002 à 14:51:43  profilanswer
 

phpbb2 non ça se saurait.
c qd tu installes des scripts tout fait que tu peux mettre en danger tout le site  
--> faut regarder toutes les sources à la recherche d'include ou d'uploads


---------------
...oups kernel error...
n°196320
electroger
Posté le 17-08-2002 à 14:56:58  profilanswer
 

Donc le site c'est bon, phpBB2 c'est ok aussi. Je vais ajouter un compteur de dl sur mon site (vous l'avez peut remarqué y a un autre post de moi sur ce forum) je vais prendre un script de phpdebutant (ça me convient bien je pense  :D ) ça risque rien? (ça c'est un script tout fait).

n°196321
Vadrigar
Posté le 17-08-2002 à 14:59:21  profilanswer
 

Ton phorum phpBB2 risque rien si c'est la version finale, la version RC2 a une faille de securité.

n°196343
electroger
Posté le 17-08-2002 à 15:42:41  profilanswer
 

Bon, si tout est Ok, c'est cool! Je vais pas tarder a mettre mon site sur le net. Ca fait depuis le mois de mai que je bosse dessus, je vous filerais l'url.
En tout cas MERCI a vous tous pour votre aide, je suis a chaque fois surpris par ceux qui sur hardware.fr, sont près à aider les newbies, tout en sachant qu'il peut probable que ces meme newbies les aide en retour.  :)  
Alors MERCI BEAUCOUP!

n°196348
Vadrigar
Posté le 17-08-2002 à 15:50:34  profilanswer
 

Bah moi chui nouveau aussi ici, je suis arrivé en meme temps que toi. Apres avoir fait pas mal de forum, je trouve que celui ci n'a rien a voir, pas de dispute debile ou les membre font jouer leur repartie, impek :bounce:

n°196352
electroger
Posté le 17-08-2002 à 15:58:13  profilanswer
 

Je suis bien d'accord ce forum est génial! Pas seulment en prog d'ailleurs puis que en hardware ils sont solides aussi.
Moi j'ai commencé dans la partie hardware, puis log, puis prog, et franchment c'est genial. L'avantage, c'est égalment le nbre de perso qui tourne sur ce forum, t'es presque sûr que quelqu'un pourra t'aider et assez rapidement en regle générale.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  PHP et sécurité

 

Sujets relatifs
[PHP-MySQL] Sécurité lors des requêtes SQL avec script de commentaires[PHP] pb de sécurité avec un include
[PHP]probleme lié à la securité de son site[PHP] sécurité
[PHP] - Sécurité des informationsTrou de sécurité PHP : mises à jour disponibles
[PHP] [HTML] Structure de site et securite[PHP]gestion de la sécurité d'un répertoire pour un compte utilisateur
[PHP] -> sécurité toute prete (session+cookie)Problem de Securité avec PHP (transition de variables entre les pages)
Plus de sujets relatifs à : PHP et sécurité


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