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

  FORUM HardWare.fr
  Programmation
  PHP

  TOMCAT en PHP - Utiliser sockets en multi-connexions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

TOMCAT en PHP - Utiliser sockets en multi-connexions

n°1798432
ledzep2
Posté le 10-10-2008 à 19:06:55  profilanswer
 

Bonjour à tous !
 
Je vais essayer d'être clair.
Je suis au sein d'un réseau interne qui possède une ouverture vers l'extérieur pour afficher notamment mon site web, c'est la machine E.
Dans mon réseau j'ai une machine M maitre et une machine avec une base de données B.
Je voudrais que les internautes puissent effectuer des requêtes via E en passant par M sur la machine B.
Autrement dit, seule la machine M peut faire des requêtes sur B.
Un firewall bloque toutes les communications depuis E vers M.
Je sais que Tomcat le fait via un port particulier que celui-ci écoute en permanence.
Le problème c'est que Tomcat est en java. Je voudrais savoir s'il y a un équivalent en php ou si ça peut se faire à la main.  
J'ai lu un truc sur les sockets ça semble faire ce dont j'ai besoin, mais pas sur ...
Question sécurité ça à pas l'air d'être le must !  
J'ai trouvé ça qui marche plutôt pas mal :
http://www.php.net/manual/fr/ref.sockets.php
Voir le message de firefly2442 at hotmail dot com
29-Mar-2008 01:31
 
Bon aprés niveau sécurité ça a pas l'air carnaval ...
Et pis y a pas la gestion des multi-connexions.
Je trouve pas un script clair avec des explications pour faire du multi-connexions.
En fait, j'ai une interface qui doit afficher des informations en fonction de ce que l'on choisi de cliquer.
Les informations à afficher proviennent d'une base de données. Firewall et réseau interne font qu'il est interdit pour la machine ouverte vers l'extérieur (DMZ) de communiquer avec la base de données. Pour cela il faut qu'elle passe par la machine maitre qui elle a le droit.
J'ai donc choisi d'ouvrir un port et de communiquer par socket.
Je me suis aidé de plusieurs scripts simples et j'ai pu voir que ça fonctionne bien.
Le problème c'est que ça ne gère pas plusieurs clients.
On m'a conseillé de faire du "fork" ? avec pcntl_fork ...
D'autres me parlent de thread ?
Mais bon bref je ne comprends pas grand chose.
 
D'avance merci pour toutes vos réponses !

mood
Publicité
Posté le 10-10-2008 à 19:06:55  profilanswer
 

n°1798462
skeye
Posté le 10-10-2008 à 20:54:26  profilanswer
 

ledzep2 a écrit :


Je voudrais que les internautes puissent effectuer des requêtes via E en passant par M sur la machine B.
Un firewall bloque toutes les communications depuis E vers M.


 
ya pas comme une contradiction là?[:dawa]
 
Je zappe le reste qui mentionne tomcat, c'est un tissus d'âneries.


---------------
Can't buy what I want because it's free -
n°1799501
ledzep2
Posté le 13-10-2008 à 16:22:42  profilanswer
 

Ah voui mais le firewall c'est moi qui le gère donc si faut ouvrir un port, c'est possibbbbb !
 
Quoi tissu d'anerie ?

n°1799503
skeye
Posté le 13-10-2008 à 16:25:30  profilanswer
 

ledzep2 a écrit :

Ah voui mais le firewall c'est moi qui le gère donc si faut ouvrir un port, c'est possibbbbb !


 
Alors tu ouvres directement un accès sur le bon port pour interroger la base de données en php, pourquoi tu te fais chier?[:mlc]
 

ledzep2 a écrit :


Quoi tissu d'anerie ?


n'importe-quoi, si tu préfères.[:dawa]


---------------
Can't buy what I want because it's free -
n°1799520
ledzep2
Posté le 13-10-2008 à 16:38:24  profilanswer
 

Beh j'ai testé le coup des sockets, mais le problème, c'est pour les multi-connexions comment faire ?
J'explique mal ou quoi ?
J'ai l'air de me faire chier ? Je passe à côté d'un truc tout simple c'est ça ?
Beh je vois pas, alors si tu peux prendre 5 minutes pour me faire une explication claire ... c'est bienvenu, je suis pas un king du php loin de là, mais je crois pas être totalement idiot, alors ça nous laisse une chance !  :sol:

Message cité 1 fois
Message édité par ledzep2 le 13-10-2008 à 16:38:41
n°1799522
skeye
Posté le 13-10-2008 à 16:41:01  profilanswer
 

ledzep2 a écrit :

Beh j'ai testé le coup des sockets, mais le problème, c'est pour les multi-connexions comment faire ?
J'explique mal ou quoi ?
J'ai l'air de me faire chier ? Je passe à côté d'un truc tout simple c'est ça ?
Beh je vois pas, alors si tu peux prendre 5 minutes pour me faire une explication claire ... c'est bienvenu, je suis pas un king du php loin de là, mais je crois pas être totalement idiot, alors ça nous laisse une chance !  :sol:


m'enfin si c'est toi qui gères le firewall entre les serveurs, pourquoi tu te connectes pas directement du serveur web vers le serveur de données?[:mlc]
C'est quoi comme base de données?


---------------
Can't buy what I want because it's free -
n°1799530
ledzep2
Posté le 13-10-2008 à 16:51:45  profilanswer
 

skeye a écrit :


m'enfin si c'est toi qui gères le firewall entre les serveurs, pourquoi tu te connectes pas directement du serveur web vers le serveur de données?[:mlc]
C'est quoi comme base de données?


 
1- je ne veux pas une connexion directe pour ne pas que l'on puisse crééer des requetes non autorisées. Je veux augmenter la difficulté pour pirater ma bdd en mettant un intermédiaire qui aura des requêtes pré-construites à l'avance et limitées en portée.
 
2- MySQL, quant au contenu, hautement sensible.

n°1799556
skeye
Posté le 13-10-2008 à 17:02:36  profilanswer
 

ledzep2 a écrit :


1- je ne veux pas une connexion directe pour ne pas que l'on puisse crééer des requetes non autorisées. Je veux augmenter la difficulté pour pirater ma bdd en mettant un intermédiaire qui aura des requêtes pré-construites à l'avance et limitées en portée.

 

Passer par une autre machine n'a aucun intérêt,si l'appli installée sur la machine accessible de l'extérieur n'est pas sûre il y aura une faille de toute manière.

 
ledzep2 a écrit :

2- MySQL, quant au contenu, hautement sensible.

 

Se connecter à une bdd sur une autre machine avec mysql est trivial...après à toi de coder ton appli proprement, si tu ne veux pas qu'il y ait des fuites sur des données sensibles - ce que tu devrais faire de toute manière en utilisant un système farfelu comme celui que tu envisageais...

Message cité 1 fois
Message édité par skeye le 13-10-2008 à 17:03:14

---------------
Can't buy what I want because it's free -
n°1799566
ledzep2
Posté le 13-10-2008 à 17:10:35  profilanswer
 

skeye a écrit :


 
Passer par une autre machine n'a aucun intérêt,si l'appli installée sur la machine accessible de l'extérieur n'est pas sûre il y aura une faille de toute manière.
 


 
Au contraire de ce que je pensais.
Imaginons que le pirate fasse une injection SQL, dans le cas ou il y a un intermédiaire qui ne lit qu'un id de requête par exemple, tu retournes une erreur.
Dans l'autre le type a accès à ce qu'il veut.
Bien sûr je compte me prémunir des injections SQL mais j'imagine qu'il doit y avoir des tonnes d'autres exemples qui fonctionnent sur le même principe.
 
 

skeye a écrit :


 
Se connecter à une bdd sur une autre machine avec mysql est trivial...après à toi de coder ton appli proprement, si tu ne veux pas qu'il y ait des fuites sur des données sensibles - ce que tu devrais faire de toute manière en utilisant un système farfelu comme celui que tu envisageais...


 
Se connecter à une bdd MySQL est simple je te l'accorde.
Ce qui est intéressant c'est mon système farfelu qui permettrait des fuites sur les données sensibles. Là je suis grandement intéressé. De quelle manière ?

n°1799568
skeye
Posté le 13-10-2008 à 17:15:03  profilanswer
 

ledzep2 a écrit :


Au contraire de ce que je pensais.
Imaginons que le pirate fasse une injection SQL, dans le cas ou il y a un intermédiaire qui ne lit qu'un id de requête par exemple, tu retournes une erreur.
Dans l'autre le type a accès à ce qu'il veut.
Bien sûr je compte me prémunir des injections SQL mais j'imagine qu'il doit y avoir des tonnes d'autres exemples qui fonctionnent sur le même principe.

 

Se connecter à une bdd MySQL est simple je te l'accorde.
Ce qui est intéressant c'est mon système farfelu qui permettrait des fuites sur les données sensibles. Là je suis grandement intéressé. De quelle manière ?


Si ton système permet à l'appli php d'exécuter des requêtes d'une manière ou d'une autre, elle permet à une faille sur cette appli php d'exécuter n'importe-quelle requête.
Ton système est une perte de temps qui serait mieux utilisé à peaufiner l'appli.

 


Enfin bref, si tu tiens tant que ça à coller un intermédiaire entre ton site et ta base, tu n'as qu'à insérer une couche de webservices qui seront sur ta 3ème machine...pas d'histoires de sockets ou conneries de ce genre, et tu ne crées ques des webservices exposant des données safe...seul le serveur web ayant accès aux webservices, évidemment.

Message cité 1 fois
Message édité par skeye le 13-10-2008 à 17:19:06

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 13-10-2008 à 17:15:03  profilanswer
 

n°1799579
ledzep2
Posté le 13-10-2008 à 17:20:44  profilanswer
 

skeye a écrit :


 
Enfin bref, si tu tiens tant que ça à coller un intermédiaire entre ton site et ta base, tu n'as qu'à insérer une couche de webservices qui seront sur ta 3ème machine...pas d'histoires de sockets ou conneries de ce genre, et tu ne crées ques des webservices exposant des données safe...seul le serveur web ayant accès aux webservices, évidemment.


 
Ca à l'air intéressant. Aurais tu une breve description ou des liens en cohérence avec ce que tu dis ?
 

n°1799582
skeye
Posté le 13-10-2008 à 17:21:20  profilanswer
 

ledzep2 a écrit :


 
Ca à l'air intéressant. Aurais tu une breve description ou des liens en cohérence avec ce que tu dis ?
 


http://fr3.php.net/manual/fr/book.soap.php


---------------
Can't buy what I want because it's free -
n°1799621
skeye
Posté le 13-10-2008 à 17:58:51  profilanswer
 

...et sinon une solution encore plus simple si ton appli web ne doit consulter que les infos non sensibles de ta base c'est de te connecter à ta base avec un utilisateur qui n'a le droit de voir que certaines données, non sensibles...tu peux très bien créer des vues qui n'exposent que des données ok, et donner uniquement le droit à un utilisateur d'utiliser ces vues...bref, il y a plusieurs solutions forcément plus simples à mettre en place et meilleures que ton idée de départ.


---------------
Can't buy what I want because it's free -
n°1799821
ledzep2
Posté le 14-10-2008 à 10:15:35  profilanswer
 

Ca le coup de l'utilisateur selon le profil, j'y avais pensé. Le truc c'est qu'en plus de l'extérieur on doit pouvoir avoir accès aux données sensibles.
En fait selon l'utilisateur il peut même y avoir des modifications de la bdd .

n°1799827
skeye
Posté le 14-10-2008 à 10:21:42  profilanswer
 

ledzep2 a écrit :

Ca le coup de l'utilisateur selon le profil, j'y avais pensé. Le truc c'est qu'en plus de l'extérieur on doit pouvoir avoir accès aux données sensibles.
En fait selon l'utilisateur il peut même y avoir des modifications de la bdd .


 
Alors il va falloir dans tous les cas blinder l'appli elle-même.  
Mais pour éviter des accès aux données non prévus ça reste une idée raisonnable de créer des webservices qui remplissent uniquement les fonctions dont tu as vraiment besoin...


Message édité par skeye le 14-10-2008 à 10:30:19

---------------
Can't buy what I want because it's free -
n°1799876
ledzep2
Posté le 14-10-2008 à 11:12:35  profilanswer
 

Ca me fait un peu mal de me mettre à apprendre encore un nouveau style de language, des nouveaux concepts, mais bon si y a pas le choix.
Merci pour ton aide en tout cas.  :sol:

Message cité 1 fois
Message édité par ledzep2 le 14-10-2008 à 11:12:55
n°1799878
skeye
Posté le 14-10-2008 à 11:13:14  profilanswer
 

ledzep2 a écrit :

Ca me fait un peu mal de me mettre à apprendre encore un nouveau style de language, des nouveaux concepts, mais bon si y a pas le choix.


bah si t'as le choix...tout simplement coder une appli classique bien verrouillée...[:dawa]


---------------
Can't buy what I want because it's free -
n°1799890
ledzep2
Posté le 14-10-2008 à 11:43:36  profilanswer
 

skeye a écrit :


bah si t'as le choix...tout simplement coder une appli classique bien verrouillée...[:dawa]


 
Beh c'est vrai que je me tate, vu mon peu d'expérience en sécurité.
Je crois que je suis un peu parano !
 
Je m'appuie sur ça :
 
ce lien
ce lien
et surtout ce lien
 
Suffira-ce ?
Arriverais-je à tout digérer ?
Affaire à suivre ...

n°1799896
skeye
Posté le 14-10-2008 à 11:49:55  profilanswer
 

En php une fois que tu as désactivé register_globals et que tu passes systématiquement tes données aux requêtes via des variables de requêtes préparées t'as fait les 3/4 du boulot.
Après c'est le fonctionnement interne de l'appli...


---------------
Can't buy what I want because it's free -

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

  TOMCAT en PHP - Utiliser sockets en multi-connexions

 

Sujets relatifs
Erreur lancement serveur Tomcat sur Eclipse[VB .NET] Comment utiliser une classe écrite en C#
utiliser des accents dans les noms de variables ?[PHP] header sans effet
administration tomcatPHP et <input />
Est-il possible de sélectionner un onglet Excel bien précis avec PHP ?Reproduire l output mysql + PHP
Formulaire de contact PHPaide pour modéle de News avec PHP-Nuke
Plus de sujets relatifs à : TOMCAT en PHP - Utiliser sockets en multi-connexions


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