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

  FORUM HardWare.fr
  Programmation
  PHP

  Protections en php contre les hackers...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Protections en php contre les hackers...

n°291736
Davjack
Asta la vista miam miam !!!
Posté le 22-01-2003 à 12:15:24  profilanswer
 

Je vais me mettre à l'accès à un base de donné MySql par l'intermédiaire du language PHP. Seulement j'ai entendu qu'il était très facile de trouver le mot de passe et le login de MySql quand il est exécuté par php.  
 
Ma question est donc : Comment je dois procéder pour me protéger ?

mood
Publicité
Posté le 22-01-2003 à 12:15:24  profilanswer
 

n°291753
lorill
Posté le 22-01-2003 à 12:28:35  profilanswer
 

t'as essayé de mettre un préservatif sur le serveur ?

n°291760
Davjack
Asta la vista miam miam !!!
Posté le 22-01-2003 à 12:32:30  profilanswer
 

En fait, il paraît que comme je dois me connecter à partire de PHP à MySql (donc je met mon login et mon mot de passe sur la page PHP), il est possible de voir mon login et mon mot de passe....

n°291779
beleg
黑社會
Posté le 22-01-2003 à 12:53:37  profilanswer
 

La connection php-mysql necessite habituellement un seul login/pass qui est stocké sur le serveur apache. Donc ce login/pass ne passera pas sur le reso. Generalement, cest configuré pr que le serverur sql naccepte des connections que de certaines machines (celle ou est lapache par exemple)
 
si tu parles de login/password de visiteurs, oui cest possible de les voir si tu analyses tt ce passe sur ta ligne reso. Avant de te précoccuper de ca, tu as quelques autres trucs a te preoccuper dans tes pages php.

n°291802
Davjack
Asta la vista miam miam !!!
Posté le 22-01-2003 à 13:26:08  profilanswer
 

beleg a écrit :

...Avant de te précoccuper de ca, tu as quelques autres trucs a te preoccuper dans tes pages php.
 

euh quoi ???

n°291804
kadreg
profil: Utilisateur
Posté le 22-01-2003 à 13:27:31  profilanswer
 

Davjack a écrit :

euh quoi ???


 
Ne pas mettre les copies de sauvegarde de fichier PHP sur le serveur par exemple (contient du vécu)


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°291811
Davjack
Asta la vista miam miam !!!
Posté le 22-01-2003 à 13:41:51  profilanswer
 

Y a-t'il un site qui parle des mannière de bien protéger ses scripts ?

n°291816
beleg
黑社會
Posté le 22-01-2003 à 13:46:13  profilanswer
 

oui ce forum ... recherche "securité"  :sarcastic:

n°291821
Hermes le ​Messager
Breton Quiétiste
Posté le 22-01-2003 à 13:58:31  profilanswer
 

beleg a écrit :

La connection php-mysql necessite habituellement un seul login/pass qui est stocké sur le serveur apache. Donc ce login/pass ne passera pas sur le reso. Generalement, cest configuré pr que le serverur sql naccepte des connections que de certaines machines (celle ou est lapache par exemple)
 
si tu parles de login/password de visiteurs, oui cest possible de les voir si tu analyses tt ce passe sur ta ligne reso. Avant de te précoccuper de ca, tu as quelques autres trucs a te preoccuper dans tes pages php.
 


 :jap:  [:totozzz]

n°291888
nico168
Posté le 22-01-2003 à 15:17:46  profilanswer
 

y'a certains outils qui font des sauvegarde de fichiers, et ca peut etre genant si tu les uploads sur le serveur, par exemple :
Editplus sauvegarde mes fichiers PHP en rajoutant l'extention .bak, Beaucoup de serveur web n'interpretront pas le php d'un fichier .bak et affichera donc son contenu. ca peut provoquer des surprises :
 
http://www.google.fr/search?source [...] php3%2Ebak
 
 
 

mood
Publicité
Posté le 22-01-2003 à 15:17:46  profilanswer
 

n°291890
[SDF]Poire
Vive Grumly
Posté le 22-01-2003 à 15:22:34  profilanswer
 
n°291982
Davjack
Asta la vista miam miam !!!
Posté le 22-01-2003 à 16:58:31  profilanswer
 

Et la commande "mysql_connect" présente-t'elle une faille ? Je dois faire comment pour que personne ne puisse voir le login et le mot de passe que je met dans mes fichiers PHP ???

n°292004
nico168
Posté le 22-01-2003 à 17:28:25  profilanswer
 

Davjack a écrit :

Et la commande "mysql_connect" présente-t'elle une faille ? Je dois faire comment pour que personne ne puisse voir le login et le mot de passe que je met dans mes fichiers PHP ???


le contenu de tes fichiers php n'est pas visible pour le surfer, il ne voit que le resultat une fois que le fichier php à été traité. tu peux donc utiliser la fonction mysql_connect sans probleme.
perso, j'ai un fichier connect.php qui contient genre :
 
$bddlogin="machin";
$bddpass="truc";
$bddhost="bidule";
 
et je l'include() dans tout les fichiers qui ont besoin de ces infos de connection...ca permet de ne modifier qu'un fichier quand tu changes de config.

n°292118
Davjack
Asta la vista miam miam !!!
Posté le 22-01-2003 à 19:17:48  profilanswer
 

Ok, merci !

n°292234
ethernal
Chercheur de vérité...
Posté le 22-01-2003 à 22:40:09  profilanswer
 
n°293456
kalex
Posté le 24-01-2003 à 16:45:55  profilanswer
 

Une (grosse) erreur que l'on rencontre, c'est un code découper en différents fichiers, mais sans l'extension.php !
J'ai déjà vu un mot de passe stoquer dans un fichier du nom de « pass.ini » :/.

n°293520
berceker
BERCEKER UNITED
Posté le 24-01-2003 à 18:03:47  profilanswer
 

Kalex a écrit :

Une (grosse) erreur que l'on rencontre, c'est un code découper en différents fichiers, mais sans l'extension.php !
J'ai déjà vu un mot de passe stoquer dans un fichier du nom de « pass.ini » :/.


Pour completer tes dires il y a aussi le fameux *.inc ou certain hebergeur ne l'interprete pas comme du php je me rappelle que j'utilsais cette extention dans mon site et une apres par hasard j'ai voulu taper directement le nom de mon fichier *.inc et la je vois apparaitre mon login et mot de pass de ma connexion alors j'ai fais savoir a mon hebergeur que c'etais un trou assez important. Donc moralité de l'histoire  :non:  ne pas utilisé des extention exotique au rique de ce faire reniflé par un gamin.
contentez vous d'un *.php  
 
Pour revenir au probleme de login/pass récupérable, a mon sens c'est pas trop possible sauf si tu le mes dans un cookie ou en chaine de caractere dans un parametre.  
Il faut arrété de psychoté :pt1cable:  !.........


---------------
Si je suis près de toi c'est soit pour t'embrasser ou te croquer, alors à ce moment là rappelle toi de ce que tu m'as fait. du bien ou du mal?
n°293523
Hermes le ​Messager
Breton Quiétiste
Posté le 24-01-2003 à 18:11:14  profilanswer
 

ouai :/
 
les .inc, ça suxx...
 
J'utilise que .php quoi qu'il arrive.
 
Ceci-dit, il existe (et il existera toujours) des failles de sécu quand même, mais elles sont pas à la portée du mec moyen.  
De plus, quand on sait que tous ce qui est asp, perl, cgi etc... n'est finalement pas plus sécurisé, la solution ultime n'existe pas.

n°293543
einstein2
Windaube, FAIS l'EFFORT !
Posté le 24-01-2003 à 18:37:53  profilanswer
 

ouais de toute manière dans ta base SQL, tu peux administrer les acces comme tu le souhaites pour les visiteurs non enregistrés ou le user "nobody"(apache je crois avec PHP en fonctionnant en module).
pour les autres il faut faire (par ex.), une table MySQL, et faire un script qui consulte cette table "secrete" puis donne un cookie autorisant une session pendant x jours sur le site.
 
c le beans quoi  :pt1cable:  
 

Davjack a écrit :

Je vais me mettre à l'accès à un base de donné MySql par l'intermédiaire du language PHP. Seulement j'ai entendu qu'il était très facile de trouver le mot de passe et le login de MySql quand il est exécuté par php.  
 
Ma question est donc : Comment je dois procéder pour me protéger ?

n°293584
kalex
Posté le 24-01-2003 à 19:12:17  profilanswer
 

Je ne sais pas si c'est disponible cher les hébergeurs genre Free, mais on peut normalement spécifié des droits pour différents utilisateurs. Par exemple, pour accéder à une section article dans un site, vous accédez à la table « article » avec un utilisateur qui n'a que le droit que de faire des « SELECT ». Alors, même si un gogol trouve votre mot de passe, il pourra juste s'amuser à faire des « SELECT ». :)
Vous pouvez même spécifier les droits de cet utilisateur par table et colonne !
 
Regardez la base mysql.
Vous y trouverez les tables :
 - user : les utilisateurs et leurs droits.
 - db : les droits par base.
 - tables_priv : les doits par table.
 - columns_priv: les droit pas colonne.
 
C'est comme ça qu'il faut s'y prendre pour sécuriser sa babase. ;)


Message édité par kalex le 24-01-2003 à 19:15:45
n°293715
berceker
BERCEKER UNITED
Posté le 25-01-2003 à 01:01:59  profilanswer
 

Moi je préfère me faire hacker par un pro que par un novice donc raison de plus pour bien sécurisé son site.....


---------------
Si je suis près de toi c'est soit pour t'embrasser ou te croquer, alors à ce moment là rappelle toi de ce que tu m'as fait. du bien ou du mal?
n°293774
ethernal
Chercheur de vérité...
Posté le 25-01-2003 à 15:25:32  profilanswer
 

Kalex a écrit :

Alors, même si un gogol trouve votre mot de passe, il pourra juste s'amuser à faire des « SELECT ». :)


tout à fait d'accord, mais uniquement pour les failles de programmation. (ex passer des arguments dans une url pour faire exécuter une query que le programmeur n'avait pas prévu)  
 
Mais s'il trouve le pwd, c'est qu'il a accès aux sources php (par une très grosse faille) et comme en général il y a une interface admin, il y a le login/pwd de l'admin (qui peut tout faire). Donc là je dirais que ça sert à rien.

n°293780
kalex
Posté le 25-01-2003 à 15:41:08  profilanswer
 

On ne stoque pas le mot de passe d'administration sur le serveur. L'admin, il connaît son mot de passe, il peut bien l'entrer lorsqu'il se connecte.

n°293786
ethernal
Chercheur de vérité...
Posté le 25-01-2003 à 15:59:42  profilanswer
 

Kalex a écrit :

On ne stoque pas le mot de passe d'administration sur le serveur. L'admin, il connaît son mot de passe, il peut bien l'entrer lorsqu'il se connecte.


 :??:  et comment tu le vérifies le pwd ??
ps : je parle d'administration distant par interface php.

n°293787
kalex
Posté le 25-01-2003 à 16:07:16  profilanswer
 

:??:
C'est la base qui le vérifie.

n°293788
ethernal
Chercheur de vérité...
Posté le 25-01-2003 à 16:15:48  profilanswer
 

ok ok :)
donc il est stocké dans la bd et c'est le login/pwd de l'utilisateur admin de mysql.
c'est pas mauvais à la base comme idée... mais c'est rarement utilisé. je pense que sur la plupart des hébergements tu n'as droit qu'à 1 seul user (admin de la base).
 
mais ça veut dire aussi que ton user à droit restreint doit pouvoir lire la table des login/pwd de la base pour vérifer le login/pwd. Donc en résumé, ça change pas gd chose.


Message édité par ethernal le 25-01-2003 à 16:17:25
n°293790
Profil sup​primé
Posté le 25-01-2003 à 16:27:29  answer
 

ben si  !
 
perso j'host chez moi et pour sql j'ai plusieur compte donc ca sert :)

n°293794
kalex
Posté le 25-01-2003 à 16:36:42  profilanswer
 

ethernal a écrit :

ok ok :)
donc il est stocké dans la bd et c'est le login/pwd de l'utilisateur admin de mysql.
c'est pas mauvais à la base comme idée... mais c'est rarement utilisé. je pense que sur la plupart des hébergements tu n'as droit qu'à 1 seul user (admin de la base).
 
mais ça veut dire aussi que ton user à droit restreint doit pouvoir lire la table des login/pwd de la base pour vérifer le login/pwd. Donc en résumé, ça change pas gd chose.


Code :
  1. select Password from user;
  2. +------------------+
  3. | Password         |
  4. +------------------+
  5. | 6f2cfb60a027b232 |
  6. +------------------+

C'est pas trés lisible. ;)
De plus, rappelle-toi qu'on peut spécifier les droits par bases et tables. Donc, tu interdis à ton user de lire les bases ou tables que tu as envie ! :)


Message édité par kalex le 25-01-2003 à 16:38:56
n°293798
ethernal
Chercheur de vérité...
Posté le 25-01-2003 à 16:40:13  profilanswer
 

bon je résume alors :

  • possibilité 1 :

je trouve une faille dans ton script de connexion des users (par ex pour un forum) et je me loggue en admin -> j'ai accès à toute l'interface admin de ton site. D'accord, je n'ai pas ton login et pwd, ça m'empêchera pas de modifier ta bd par l'interface que tu as faites, c'est limité, mais ça t'embêtera certainement.
 

  • possibilité 2 :

tu as une grosse faille, je peux exécuter le code que je veux chez toi.  je lis tes scripts, je vois ton login/pwd d'accès à ta base (sans droit). je me fais mon script qui affiche la liste des utilisateurs mysql et leur pwd. je ne peux pas les modifier (pas le droit avec ce login). je décode ton login/pwd admin de la base. je refais un script qui me connecte en admin. ton site et ta base sont finis.
 
Entre nous, c'est un peu plus dur que de trouver le login/pwd directement dans les sources, mais ça n'arrêtera pas celui qui le veut.
 
Tu sais certainement comme moi que la sécu est un ensemble. (firewall, configuration du serveur & failles logicielles, code php, ...)
Et je dis pas du tout que votre méthode est nulle ou inutile, que du contraire, je suis pour, ça rend la tâche plus difficile.
je dis juste que ça fait partie d'une totalité et que si tu te bornes à cela, ton pc n'est pas en sécurité.

n°293803
ethernal
Chercheur de vérité...
Posté le 25-01-2003 à 16:50:20  profilanswer
 

Kalex a écrit :


De plus, rappelle-toi qu'on peut spécifier les droits par bases et tables. Donc, tu interdis à ton user de lire les bases ou tables que tu as envie ! :)


 
hum je me demande si j'ai tout compris ???
tu veux dire que le login/pwd envoyé par le formulaire à un script php est celui qui sera utilisé pour la connexion mysql ?
 
pas mal  :jap:  
 
mais tu dois qd même avoir un login/pwd de connexion par défaut qui est codé dans php non ?
si ce login/pwd n'a pas le droit de lire la table des user de mysql ? là ça devient très intéressant !!  [:tuffgong]

n°293804
ethernal
Chercheur de vérité...
Posté le 25-01-2003 à 16:53:54  profilanswer
 

mais comment un utilisateur non inscrit fait-il pour s'enregistrer ? --> tu es limité là non ? puisqu'il ne peut pas lire cette table des comptes de mysql et encore moins la modifier avec la connexion mysql qu'il utilise par défaut

n°293809
kalex
Posté le 25-01-2003 à 17:09:00  profilanswer
 

Tu peux spécifier dans le détail les droits que tu accordes à un utilisateur : au niveau des bases, des tables et même de colonnes.
Un utilisateur peut avoir le droit d'ajouter une entrée dans une table, mais pas de la lire...
 
M'enfin je n'y ai pas vraiment réfléchi,  je n'ai jamais eu à coder de forum (ça va peut-être changer :D).
 
Edit : voir http://dev.nexen.net/docs/mysql/an [...] system.php


Message édité par kalex le 25-01-2003 à 17:28:46
mood
Publicité
Posté le   profilanswer
 


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

  Protections en php contre les hackers...

 

Sujets relatifs
Comment protéger un programme contre la copie?Protéger un formulaire contre les multis-comptes
[DEFI] Y a t-il des hackers en herde dans la salle ??Prtoection contre plusieurs lancements
[html] <table> coller une image contre bord sup d'une cellule ?PHPNuke : pour ou contre ?
tester la securité contre le hacking sur un prog intranet + proxyACTION CONTRE LA TAXE SUR LES CDR !
Plus de sujets relatifs à : Protections en php contre les hackers...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)