IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Securite et readfile


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut Securite et readfile
    Bonjour,

    dans le cadre d'un projet je souhaite proposer un traitement à mes clients sans bien sur qu'il puisse récupérer mon code.

    Vu que mon code doit leur fournir certaines informations à afficher, l'appel à mon traitement ne peut être asynchrone et leur process doit donc attendre la fin du mien pour continuer.

    Je commence à bien toucher ma bille en php, mais la gestion de la sécurité et des accès distants est un domaine qui reste obscur !

    Quel doit être la solution à utiliser comme appel ?
    require , readfile , include ?

    Sachant que mes prerogatives sont :
    - Rassurer au maximum le client, car executer un script distant me semble dangereux, une de ses fonctions est elle plus securisé pour le client ?
    - Mon code source php doit absolument être protégé.


    Par avance merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi script distant ? c'est le client qui fait un include sur son serveur ?

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut
    oui effectivement c'est le client qui sur son serveur fait un appel vers mon script.

    Et comme je le disais precedement, j'ai du mal avec la gestion des fichiers distants et la sécurité.

    Je n'ai pas l’expérience ni la tournure d'esprit pour imaginer quel pourrait être les actions que l'on peut effectuer avec des appels à des scripts distants.

    Donc si je veux arriver à vendre ma solution à des clients, je dois pouvoir leur assurer qu'il ne craigne rien. Tout en gardant precieusement mon code à l'abri !

    C'est possible ou bien je reve un peu

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si tu veux qu'il fasse un include, ton code la source du code doit être visible, et il sera exécuter coté client, la sécurité ne viens pas de ton coté mais du leur, puisque ton script agira directement sur leurs serveur

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut
    Merci de ton attention à mon probleme !

    Mais je pense que je n'ai pas été trés clair :

    Je veux proposer à des clients une solution à leur problème, la generation automatique d'image et de document qui serait disponible sur mon serveur.

    Donc sur mon serveur j'ai un script en php autonome que mes clients pourront appeler avec certains paramètres :

    Donc sur le serveur de mes futurs clients :

    leur code => appel de mon code => leur code pour récupérer les documents générés sur mon serveur .

    Donc j'ai commence à farfouiller et je pense que la fonction readfile répond à mon problème.

    L'essentiel est de pouvoir rassurer mes clients qui ne me connaisse pas encore d'accepter de faire un appel à mon script.
    Je pense qu'avec readfile le script est uniquement interprété sur mon serveur et qu'il n'y a pas d'information de session qui peuvent transiter entre les serveurs.

    Mais n'ayant jamais vraiment cogité sur ces problèmes j'aurais voulu savoir si il y avait des failles ou des hacks auquel je n'aurais pas pensé !

    Et la suite est de savoir si les clients peuvent récupérer mon code source, ce que je cherche à éviter histoire de vendre ma solution à d'autres clients !

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si c'est juste ça, fait du REST ou n'importe quel autre webservice

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par stealth35
    la sécurité ne viens pas de ton coté mais du leur
    Le risque ne serait il présent pour les 2 parties ?

    Pour récupérer un code Php sur un serveur pour l’exécuter sur le sien (le client en faite) il faut activer la directive allow_url_fopen il me semble.

    Du coup, n'importe qui aura l'occasion de récupérer n'importe quel contenu sur le serveur, à défaut de limiter ça (.htaccess par exemple).
    Une erreur ou un oubli est toujours possible, et rien ne dit qu'un plus malin que les autres parvient à récupérer un contenu plus ou moins confidentiel.
    (fichier config, ou autre).


    Un autre moyen serait de créer un WebService (ou plusieurs), comme par exemple Google, Facebook (pour les plus connues).
    Ces Webservices peuvent se faire de plusieurs manières, d'une simple requête HTTP (genre Ajax) en passant par des solutions plus évoluées comme REST, SOAP (du XML en gros).

    L'idée générale est de fournir des données plus ou moins bruts, et c'est au client d'adapter son code pour consommer les différents services.
    Ceci dit il vrai que créer des WebServices n'est pas simple (SOAP par exemple).
    Mais c'est en général plus cadré, grosso modo, ne sera fourni que ce qui est autorisé (il peu avoir une authentification, du SSL, etc ...).

    Théoriquement il n'y aura pas plus de risque qu'un site Web.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Le risque ne serait il présent pour les 2 parties ?

    Pour récupérer un code Php sur un serveur pour l’exécuter sur le sien (le client en faite) il faut activer la directive allow_url_fopen il me semble.
    non juste du coté du include, puisque au final tu récupérés qu'un fichier texte avec du PHP dedans

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Pour récupérer un code Php sur un serveur pour l’exécuter sur le sien (le client en faite) il faut activer la directive allow_url_fopen il me semble.

    Du coup, n'importe qui aura l'occasion de récupérer n'importe quel contenu sur le serveur, à défaut de limiter ça (.htaccess par exemple).
    Une erreur ou un oubli est toujours possible, et rien ne dit qu'un plus malin que les autres parvient à récupérer un contenu plus ou moins confidentiel.
    (fichier config, ou autre).
    La directive allow_url_fopen permet à des services php sur un serveur d'acceder à des fichiers via des urls et pas uniquement en interne.
    Sinon effectivement ça transformerait ton serveur en passoire en une seconde

    Je ne connaissais pas REST et en lisant justement une autre discussion sur le forum j'ai du mal à voir la subtilité et la difference par rapport à un protocole http classique.
    Il semblerait que l'url permette un appel direct à des fonctions mais dans ce cas je ne vois pas trop la difference avec l'url rewriting sous apache

    Desolé de rester aussi evasif sur mon projet mais j'ai pas mal de contraintes professionnelles ce qui ne favorise pas la discussion

    Il me faut une technique qui soit vraiment le plus simple à installer chez le client (une seule ligne de code à installer c'est un sacré argument commercial)
    et que la suite du déroulement du code chez le client attende absolument la fin de mon script !
    Et je me demande si les webservices ne sont pas asynchrone justement.

    De plus je suis entrain d'y réfléchir mais si php est installé sur mon serveur, et apache correctement paramétré il me parait impossible de pouvoir récupérer du code source php !

    Merci encore de prêter attention à mes petits soucis !

Discussions similaires

  1. [Securité] Différence entre Impersonation et Authentication?
    Par Laurent Dardenne dans le forum Windows
    Réponses: 6
    Dernier message: 13/08/2009, 11h32
  2. [JSP][Servlet][Securité] Configuration du login
    Par jaoued dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/07/2004, 14h30
  3. pbme de securité !
    Par NaDiA_SoFt dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/07/2004, 16h06
  4. Securité mysql phpmyadmin ???
    Par xophe2 dans le forum Apache
    Réponses: 6
    Dernier message: 24/06/2004, 11h34
  5. Securite
    Par K-ZimiR dans le forum Modules
    Réponses: 2
    Dernier message: 26/05/2004, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo