Bonjour à tous

J'ai un site A dans lequel il y a un répertoire "private" pour lequel il faut donner un nom d'utilisateur et un mot de passe.
Il existe un autre site B dont je ne suis pas l'administrateur, qui contient également une partie privée.

Le besoin: toute personne ayant les droits d'accès à la partie privée du site B doit pouvoir afficher des pages ou télécharger des fichiers de la partie privée du site A sans avoir à se connecter explicitement.

Je ne vois pas de solution simple à ce problème, d'autant plus qu'il est de plus en plus interdit de faire des accès "cross-sites".

Les gestionnaires du site B me disent de recopier les fichiers du site A sur leur site, mais ce n'est pas acceptable :
- les pages du site A sont le plus souvent des pages PHP accédant à une base de données et contiennent des références à des pages javascript et CSS du site
- je dois pouvoir opérer des modifications dans les fichiers téléchargeables et être sûr que ces modifications sont reportées sur les utilisateurs du site B

Comment traiteriez vous ce problème ?

Merci pour vos conseils
Merci de ta réponse
Le problème c’est que les utilisateurs du site B sont pas sensés se connecter au site A. Ils doivent se connecter au site B sur une page relais qui contient des liens vers des pages web ou des fichiers pdf qui sont dans la partie privée du site A. Dans l’état actuel du code on leur demanderait de donner un id et un mot de passe pour le site A.
Si on veut éviter cela je pourrais mettre des liens vers une page PHP dans la partie privée du site A qui vérifierait qu’ils viennent bien de la page appropriée du site B (comment faire ça?) et ferait un donwload…. Pas génial. Et de plus ça marcherait pour les fichiers pdf mais pas pour les pages HTML qui référencent des tas de fichiers css js ou autres du site A.
Smiley sweatdrop Smiley rolleyes Smiley attention
PapyJP a écrit :

Si on veut éviter cela je pourrais mettre des liens vers une page PHP dans la partie privée du site A qui vérifierait qu’ils viennent bien de la page appropriée du site B (comment faire ça?)


Tu peux faire tout ça avec JWT (Json Web Token)
Modifié par JENCAL (04 Apr 2023 - 13:01)
lors de l'authentification, tu peux générer un JWT qui peut être transmit à d'autre site (un genre de bearer pour les API) qui permet de sécuriser les échanges et d'être sûr que c'est bien l'utilisateur connecté qui fait la requête.

Les JWT sont souvent utilisés pour l'authentification des utilisateurs dans les applications web et mobiles. Lorsqu'un utilisateur se connecte à une application, un JWT peut être généré pour représenter son identité. Ce token peut ensuite être envoyé à chaque requête envoyée par l'utilisateur, permettant ainsi de vérifier rapidement l'identité de l'utilisateur sans avoir besoin de le re-authentifier à chaque fois.

En résumé, le JSON Web Token (JWT) est un format de token sécurisé et efficace pour l'authentification et l'échange de données entre des parties.
Modifié par JENCAL (05 Apr 2023 - 10:07)
Merci de ces précisions, mais comme JWT est actuellement un ovni pour moi et que je n'ai pas trouvé de "how to use" sur internet, peux tu me donner un pointeur sur un document qui m'expliquerait ce que je dois faire dans le site A et dans le site B ?
En vrai c'est un peu long à expliquer, surtout par écrit.

Il y a vraiment pleins de vidéos tuto sur google.

Mais le but, c'est que ton site A et ton site B on un clé commun. un guid, un code quelque chose quoi.

Ton site B créer un json web token via cette clé commune, et que ton site A s'il reçoit un JWT et qu'avec la clé il arrive à le déchiffrer alors faire en sorte que la connexion soit autorisé.
Modifié par JENCAL (05 Apr 2023 - 14:43)
Bonjour l'ami ! tu est en plein dans mes travaux en équipe sur la sécurité ! Alors sans prétention je te dirait que la seule solution est l'envoie par B vers A un SQL crypté simplement !
Et en dehors de cela c'est impossible !
En effet surtout avec un JS quel qu'il soit, (pas plus jQuery qu'un autre) tout ce qui utilise du HTML (seul contenant pouvant exécuté un CSS ou un JS) peut être lu par tout informaticien, même si le clic droit est bloqué, puisqu'il est enfantin de contourner cette fausse sécurité !
De cela retient bien que l'ajax est donc inenvisageable. Encore moins posséder sur le serveur A le login SQL de B !
Imagines le nombre de failles que tu mettrais en place, et en plus ton seul serveur s'il est Pro, t'en empécherait.
Je reviens de suite, car je voulais t'ouvrir une fenêtre sur Ajax, à partir de la, tu pourra faire communiquer NON PAS A vers B puisque je t'ai expliqué que c'était impossible.
Mais tout bêtement de l'ordinateur d'un visiteur vers A OU B alors B étant donné son accord métra chez lui, un SQL pour tes visiteurs de A ,qui en Ajax appelleront avec leur "window.XMLHttpRequest" les données en appelant SUR B un PHP t'apartenant ! c'est enfantin.
Mais pas sur que l'appel "window.XMLHttpRequest" avec une URL compléte soit autorisée Smiley decu Smiley confus
Modifié par Fox-infograp (09 Apr 2023 - 12:19)