TOMCAT en PHP - Utiliser sockets en multi-connexions - PHP - Programmation
Marsh Posté le 10-10-2008 à 20:54:26
ledzep2 a écrit : |
ya pas comme une contradiction là?
Je zappe le reste qui mentionne tomcat, c'est un tissus d'âneries.
Marsh Posté le 13-10-2008 à 16:22:42
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 ?
Marsh Posté le 13-10-2008 à 16:25:30
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?
ledzep2 a écrit : |
n'importe-quoi, si tu préfères.
Marsh Posté le 13-10-2008 à 16:38:24
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 !
Marsh Posté le 13-10-2008 à 16:41:01
ledzep2 a écrit : Beh j'ai testé le coup des sockets, mais le problème, c'est pour les multi-connexions comment faire ? |
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?
C'est quoi comme base de données?
Marsh Posté le 13-10-2008 à 16:51:45
skeye 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.
2- MySQL, quant au contenu, hautement sensible.
Marsh Posté le 13-10-2008 à 17:02:36
ledzep2 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.
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...
Marsh Posté le 13-10-2008 à 17:10:35
skeye 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.
skeye a écrit : |
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 ?
Marsh Posté le 13-10-2008 à 17:15:03
ledzep2 a écrit :
Se connecter à une bdd MySQL est simple je te l'accorde. |
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.
Marsh Posté le 13-10-2008 à 17:20:44
skeye a écrit : |
Ca à l'air intéressant. Aurais tu une breve description ou des liens en cohérence avec ce que tu dis ?
Marsh Posté le 13-10-2008 à 17:21:20
ledzep2 a écrit : |
http://fr3.php.net/manual/fr/book.soap.php
Marsh Posté le 13-10-2008 à 17:58:51
...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.
Marsh Posté le 14-10-2008 à 10:15:35
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 .
Marsh Posté le 14-10-2008 à 10:21:42
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. |
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...
Marsh Posté le 14-10-2008 à 11:12:35
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.
Marsh Posté le 14-10-2008 à 11:13:14
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...
Marsh Posté le 14-10-2008 à 11:43:36
skeye a écrit : |
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 ...
Marsh Posté le 14-10-2008 à 11:49:55
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...
Marsh Posté le 10-10-2008 à 19:06:55
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 !