Restreindre l’accès à un site : SSO, filtrage par REFERER, autres solutions ?
Hors lignePascalpa Le 14/02/2014 à 00:33 Profil de Pascalpa Configuration de Pascalpa

Bonjour tout le monde,

En qq mots : Je souhaiterais faire en sorte qu’un site ne soit accessible que depuis un lien figurant sur un autre site (sur une page sécurisée), et qu'il ne soit pas visible (ou du moins, qu’il soit difficile à trouver…) par un internaute "lambda". J’aimerais connaître les différentes approches envisageables pour arriver à ce résultat. Je précise que je suis débutant en développement web et PHP.

Voici les caractéristiques des 2 sites :

a) Le site A est un site institutionnel. Il a été développé en ASP.NET et est hébergé chez un prestataire, sous Windows/IIS. Il s'agit d'un système propriétaire, sur lequel nous n'avons que partiellement la main.

b) Le site B (celui que j’ai prévu de créer) est un mini-site consistant en un dictionnaire scientifique spécialisé. Il sera hébergé sur un autre serveur (peut-être en local) et sera associé à un sous-domaine. J'ai déjà pas mal travaillé sur les données, j'ai créé la base MySQL et j'ai fait une première ébauche d'interface de recherche. Le projet me paraît assez facile, à un détail près…

Voici le problème :

Je pensais pouvoir mettre ce site B en accès libre (ou au pire, mettre en place un système d'inscription et d'authentification distinct de celui du site A) mais mon directeur voit les choses autrement : il souhaite que le site B ne soit accessible qu’aux utilisateurs authentifiés sur le site A (via un lien sur une page sécurisée) et que ces utilisateurs n'aient pas à s'authentifier une 2e fois sur le site B. En même temps, il reconnaît que l'accès au site B n'a pas besoin d'être très sécurisé. En fait, il veut simplement qu'un internaute "lambda" ne puisse pas y accéder facilement (ni évidemment, tomber dessus via Google), mais il ne jugerait pas très grave qu'une minorité de gens arrive à contourner le système.

En résumé : il doit y avoir une porte pour dissuader la "masse" des gens d'entrer, mais si la porte n'est pas fermée à clé, ce n'est pas très grave.

Voici mes questions :

Compte tenu de ces demandes, j'imagine plusieurs possibilités :

a) Mise en place d'un SSO entre les 2 sites : je ne me rends pas compte de la faisabilité et de la complexité de ce genre de développement. Savez-vous ce que ce que ça impliquerait techniquement de mon côté (site B) et éventuellement du côté du prestataire (site A) ?

b) "Camouflage" du site B via diverses techniques : je pense que cela pourrait largement suffire (car on n'a pas besoin d'un niveau de sécurité élevé), mais je ne sais pas dans quelle mesure c’est faisable. Dans la configuration des htaccess, j'ai lu qu'il était possible de mettre en place un filtrage par REFERER, de façon à n'autoriser que les visiteurs en provenance du site A : est-ce une bonne solution ? Je m'interroge aussi sur la possibilité de faire en sorte que le site B soit associé à une URL complexe, difficile à deviner par une personne lambda, mais je ne sais pas si c'est réalisable…

Voilà. Savez-vous si ces solutions sont réalistes, si elles sont faciles à mettre en œuvre, ce qu'elles impliquent comme difficultés, etc. ? Sinon, existe-t-il d'autres solutions ?

Un grand merci d'avance à celles et ceux qui pourront m'éclairer !

Pascal

Hors ligneAnthony Le 14/02/2014 à 10:16 Profil de Anthony Configuration de Anthony

Admin

Salut Heureux

L'approche par REFERER aurait été une piste. Le souci est que la plupart des navigateurs modernes te permettent de bloquer ce REFERER. J'aurais plutôt procédé de la façon suivante :

Sur ton site A, tu mets en place un lien vers le site B de la façon suivante : http://www.siteB.com/index.aspx?provenance=siteA (par exemple).

Ca te permet sur le site B de déterminer la provenance de tes visiteurs. En fonction de ça, sur le site B, tu mets en place un système de sessions PHP qui permettent au visiteur de rester connecté sur le site B.

Si la session n'est pas valide, tu rediriges vers une page d'erreur 404. Ce n'est pas ultra sécurisé, mais d'après ton cahier des charges c'est suffisant ;)

--

Hors lignePascalpa Le 20/02/2014 à 17:50 Profil de Pascalpa Configuration de Pascalpa

Merci pour ta réponses et désolé de répondre avec autant de retard !

Je pense effectivement m'orienter vers une solution basique, du style de celle que tu proposes : transmission d'un code dans l'URL, puis ouverture d'une session (et redirection) si le code est OK. Je sais que ce n'est pas franchement "sécurisé", mais ça a le mérite d'être simple et je pense que ça peut suffire, compte tenu de ce qui m'est demandé.

Sinon, tu n'es pas le seul à m'avoir déconseillé l'utilisation du REFERER, merci.

Hors ligneClaudeabelmann Le 04/07/2014 à 10:20 Profil de Claudeabelmann Configuration de Claudeabelmann

Bonjour,

Post assez ancien, mais il m'a retiré une épine du pieds, j'avais le même problème.

Claude abelmann

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels