[RESOLU] Restreindre l'accès à 1 site: SSO, filtrage par REFERER, etc

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Restreindre l'accès à 1 site: SSO, filtrage par REFERER, etc

Re: Restreindre l'accès à 1 site: SSO, filtrage par REFERER,

par moogli » 20 févr. 2014, 19:16

Si cela te convient peux tu cliquer sur le bouton "résolus" a droite du titre stp :mrgreen:

merci

@+

Re: Restreindre l'accès à 1 site: SSO, filtrage par REFERER,

par pascalpa » 20 févr. 2014, 18:41

Merci pour ta réponse et désolé de répondre si tardivement !

J'avais effectivement pensé au SSO, mais le problème est que je ne peux quasiment rien faire sur le site A, sans passer par le prestataire. Je n'exclus pas cette possibilité, mais il me faut aussi une solution alternative. Je pense donc que je vais opter, au moins dans un premier temps, pour quelque chose dans le genre de ce que tu appelles "principe avec faille de sécurité évidente" :D, basé sur un ID (mais pas celui de l'utilisateur) et/ou peut-être sur le referer, car les données ne sont vraiment pas sensibles, on a juste besoin d'un truc un peu dissuasif.

Re: Restreindre l'accès à 1 site: SSO, filtrage par REFERER,

par moogli » 14 févr. 2014, 10:20

salut,

Ce que tu cherche à faire est un SSO ;)

ensuite c'est la méthode de le réaliser qui peu changer.

Tu verras sur l'article plusieurs possibilité (comme le LDAP) histoire de voir si un existant ne peux pas être utilisé.

SI non il existe le principe avec faille de sécurité évidente (siteb.com?idutilisateur=42&superAdminQuiDechireTout=ok) :mrgreen:

suivant les possibilités de modif sur l'appli A je pense que j'opterais pour un log en base des utilisateurs connecté (juste id, token et date / heure de connexion).
Lorsque tu génère le lien vers b tu passe simplement le token dans l'url (siteb.com/toto=letokendelabase).
Bien sur le token est une chaîne unique (du genre un md5 => md5(uniqid()) par exemple)
Le siteA expose un webservice (pourquoi pas avec authentification, sur ssl etc etc) qui te permet de vérifier si l'utilisateur est connecté sur le site A (retour true / false, voir le nom d'utilisateurs).
Attention si tu souhaite passer des infos plus sensible (genre acl) le ssl est de mise histoire d'éviter au premier bl*, heu gens, venu de trouver ce qu'il veux en clair sur le réseau ;)

Dernière chose, sur le site A il te faut nettoyer régulièrement la table des utilisateur connecté (par exemple delete de tout ce qui à plus de 5 minutes).
il faut que tu pense à rafraîchir la date en base de temps en temps ;).

Et voila tu as fait un sso :mrgreen:


@+

Restreindre l'accès à 1 site: SSO, filtrage par REFERER, etc

par pascalpa » 14 févr. 2014, 01:29

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