Partager Un Script Tout En Filtrant Sur Autorisation

thierry8

WRInaute accro
nom mais je veux dire lorsque l'on receptionne le nom de domaine, peut t-il modifier par l'internaute, un pirate...
 

thierry8

WRInaute accro
y a t-il une facon fiable pour récupérer le nom de domaine de celui qui demande par exemple un fichier sur un autre serveur (autre nom de domaine) ?

merci de votre aide
 

wullon

WRInaute accro
Hum, sauf erreur de ma part, étant donné que c'est l'Agent Utilisateur qui envoie l'en tête host, ça doit être modifiable.
-je dirais même, il suffit de modifier le fichiers hosts de windows, en associant example.com a l IP en question ^^-
En gros, c'est possible d'aller sur une certaine IP en faisant croire qu'on y a accédé par le domaine que l'on souhaite.

Par contre, je ne vois pas l'intéret.
 

thierry8

WRInaute accro
par exemple si je veux partager un script sans vouloir le donné, en ne donnant que les instruction..cela permettrait de gérer les autorisations par ce biais...
une autre solution ? :oops:
 

thierry8

WRInaute accro
Si je souhaite partager un script via un nom de domaine sur un hebergement X, et que le bénéficiaire à un autre nom de domaine sur un hebergement y.
A l'aide du require ou include de PHP je peux inclure des fichiers distant.
Le soucis qui se pose c'est que je ne veux filtrer ceux qui peuvent en bénéficier...

Do you understand ?
 

thierry8

WRInaute accro
un filtre sur l'ip du serveur ?
Attention je parle bien de partagé un script pour un site web.....pas pour chaque utilisateur...!
..je ne vois pas comment faire sur l'ip ?...
 

Seb-

WRInaute discret
thierry8 a dit:
un filtre sur l'ip du serveur ?
Attention je parle bien de partagé un script pour un site web.....pas pour chaque utilisateur...!
..je ne vois pas comment faire sur l'ip ?...

Si j'ai bien compris, tu veux autoriser l'accès au script uniquement à partir d'un autre serveur ? Dans ce cas, tu peux par exemple mettre le script dans un répertoire particulier et mettre un fichier .htaccess avec des lignes du genre :

Code:
Deny from all
Allow from xxx.xxx.xxx.xxx

Ou bien, tu peux aussi utiliser de l'url rewriting avec une condition du type

Code:
RewriteCond %{REMOTE_ADDR} ^xxx.xxx.xxx.xxx$

Enfin, dernière possibilité, si ton script est du php, tu peux juste rajouter par exemple

Code:
if ($_SERVER['REMOTE_ADDR'] == "xxx.xxx.xxx.xxx") {...}

Bref, y'a plusieurs possibilités. Les codes que je t'ai donné sont sûrement à adapter, c'est juste quelques pistes.
 

Seb-

WRInaute discret
Juste une remarque supplémentaire : si ton serveur distant est sur un hébergement mutualisé, les autres sites pourront accéder au script car l'ip est identique. Mais ça limite déjà pas mal les risques. Après, il doit être possible de rajouter un authentification par mot de passe, mais il faut voir si ça vaut vraiment le coup.
 

thierry8

WRInaute accro
ralala ! justement, c'est la raison pour laquel je souhaiterai le faire sur le nom de domaine en PHP ! Car la j'autorise uniquement le compte que je souhaite !!!
Par mot de passe...boef...
 

wullon

WRInaute accro
Limite sur l'IP (Seb l'a bien expliqué) ET sur le domaine.

OU alors tu filtre sur l'UserAgent.

Mais si le serveur avec lequel tu veux partager ton script n'a pas d'IP propre, c'est vrai que c'est problèmatique, je ne vois pas trop de solutions sans mot de passe.
 

thierry8

WRInaute accro
le userAgent c'est quoi ?

comment je peux filtrer sur l'ip du serveur ?

Qu'est ce qu'une IP propre ?

Comment faire avec mot de passe ? je ne comprends pas ?
 

wullon

WRInaute accro
Le UserAgent est un en-tête http au même titre que le httphost.

Pour filtrer sur l'IP du serveur, Seb a tout dit.

Par IP propre, j'entend : une IP que seul le site avec qui tu veux partager utilise. Par exemple, 194.146.226.133 est l'IP de WRI, je ne peux pas faire croire que j'utilise cette IP pour surfer (enfin il y a l'IP spoofing mais c'est une autre histoire).

Pour filtrer par mdp ça doit être facilement faisable par PHP non ?
Include('http://www.example.com/scriptapartager.php?mdp=blabla').
 

thierry8

WRInaute accro
Le but de ne pas utiliser le mot de passe est par exemple qu'une personne bénéficie du script mais en abuse...si je veux l'enlever je dois donc modifier le mot de passe et le faire changé a tout le monde, à moins d'attribuer un mot de passe par personne...je préfere eviter cette solution.

la solution sur ip + nom de domain me plait, en revanche seb a expliquer pour l'ip mais avec un fichier htaccess...,est-ce que cela est faisable en php ?

Merci de votre aide !
 

wullon

WRInaute accro
Je ne suis pas un spécialiste du PHP, mais avec une condition sur le HTTPHOST, sur l'IP appelante, et pourquoi pas autre chose en plus (un mot de passe "universel") avant d'exécuter le script.

Par contre cela ressemble clairement à du "bricolage", c'est pas sûr à 100%, cela peut être suffisant (je ne sais pas si ton script "est "critique").

Si quelqu'un d'expérimenté a une solution pour ce genre de situation, ce serait bien qu'il nous en fasse part (tu pourrais peut être changer le titre du topic).
 

thierry8

WRInaute accro
J'ai modifier le titre du post, je pense que celui-ci est bon ?

Le problème en PHP c'est que l'on peut récupérer une ip, mais celle de l'internaute, or ce n'est pas par rapport à l'internaute qu'il faut filtrer, mais par rapport au serveur! Le mot de passe serait une sécurité supplémentaire en effet! (rectification: j'ai toruvé comment récupérer l'adresse ip du serveur)

Donc 3 éléments sont pris en compte pour autoriser l'accès à un script distant:
$_SERVER['HTTP_HOST'] // nom de domaine
$_SERVER['SERVER_ADDR'] // adresse ip du serveur
$_SERVER['SERVER_NAME'] // nom local du serveur
$_SERVER['SERVER_ADMIN'] // adresse mail de l'administrateur du serveur
plus le mot de passe lors de l'appelle: require('http://www.example.fr/script.php?pass=ok');

(reste à vérifier s'il est possible d'appeller une page distante avec un paramètre)

Voili voilou !
Je pense qu'il s'agit la déjà d'une sacré sécurité !!!
Qu'en pensez-vous ?
 

thierry8

WRInaute accro
Je reviens sur ce post car j'ai pu remarqué que ce type de commande ne fonctionne pas:
Code:
require('http://www.example.fr/script.php?pass=ok');

Donc comment faire passer le mot de passe ? (tout bêtement en mettant la variable avant...)

Une question encore: La personne autrisée à ouvrir la page en question pourrait très bien l'ouvrir autrement qu'avec un include ou require, copié le contenu et l'enregistrer dans une autre page, non ?

Merci de vos réponses.

Autre possibilité:
si c'est sur le même serveur y a t-il un autre moyen peut etre de partager un fichier sans pouvoir le copié ?
 

itsme

WRInaute impliqué
Code:
Personne ne peut m'aider ?
Ton probleme, c'est que tu demandes des reponses precises a un probleme que tu n'a pas clairement explique.

Le but de la chose c'est quoi exactement ?

En voyant tes questions/reponses, j'ai vaguement l'impression de te voir essayer de re-inventer la roue en utilisant la plus mauvaise methode (ce qu'on a tous fait au debut).
 

thierry8

WRInaute accro
C'est bien pour cela que je fais appel ici à votre aide ! :wink:

Le problème: Partager un script tout en filtrant sur autorisation
Pour répondre à ce problème il me semble qu'utiliser ces variables peut déjà être grandement utile:
Code:
$_SERVER['HTTP_HOST'] // nom de domaine
$_SERVER['SERVER_ADDR'] // adresse ip du serveur
$_SERVER['SERVER_NAME'] // nom local du serveur
$_SERVER['SERVER_ADMIN'] // adresse mail de l'administrateur du serveur
Il manque un mot de passe supplémentaire car ce genre d'appel ne fonctionne pas:
Code:
require('http://www.example.fr/script.php?pass=ok');

Maintenant je suis ouvert à toutes autres possibilités... :roll:

Merci de votre aide.
 

itsme

WRInaute impliqué
Toutr d'abord, on ne peut pas toujours faire un include ou require d'un fichier distant. Cela depend de la version de php (>4.3.0), de sa config (allow_url_fopen) et de la plateforme (pas windows)... ouf! ca en fait du monde :)

Ce que tu veux faire, c'est un service.

Il te faut donc fonctionner comme un service et ton script doit pouvoir etre appele comme n'importe quelle page, script ou image (selon l'utilisation) et transmettre a l'appelant le resultat sous la forme qui convient le mieux a l'usage (xml, html, csv, texte, etc...) - on ne sait toujours pas ce que tu veux fournir.

A ton utilisateur de traiter ces resultats ou d'utiliser l'api permettant de le faire (que tu lui fourniras).

Comme exemple, tu peux prendre les flux rss: d'un cote un script qui les genere et de l'autre, des clients qui en font... ce qu'il veulent.

Tu te retrouves ainsi dans une configuration client/serveur et peut ainsi gerer ta guise les authentifications de tes utilisateurs qui te sont fournies lors des appels au service.
 

Discussions similaires

Haut