8721 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai un problème un peu singulier et n'ayant rien trouvé sur le net concernant ma requête je me tourne vers vous

Le lycée dont je gère le site internet dispose d'un intranet (jusque là tout va bien)
On m'a demandé d'intégrer un lien vers l'intranet sur le site du lycée (jusque là tout va bien aussi)
Là où ça se corse c'est que j'aimerai que le lien intranet n'apparaisse que lorsque la connexion au site du lycée se fait depuis le domaine.

J'ai exploré pas mal d'options mais rien trouvé de probant (inutile de chercher du côté du php vu que le script que je recherche doit s'exécuter côté client).

Si quelqu'un a une piste je suis preneur.
Je vous remercie d'avance
Modifié par jesus-reims (05 Jun 2018 - 12:05)
Tu penses pouvoir faire confiance aux visiteurs de ton site Internet.
Aucun souci s'il est seulement visité par des bisounours et qu'aucun sauvageon ne viendra perturber ta quiétude. Smiley biggrin

La sécurité se gére côté serveur et pas côté navigateur. Et cela ne suffit pas toujours, il faut souvent un tiers de confiance.

Donc, c'est PHP obligatoire ou tout autre langage côté serveur.

Je connais un CMS qui limite à 3 les tentatives d'identification. Au delà de cette limite, il dépose un cookie dans le navigateur pour imposer un délai d'attente pour la prochaine tentative.
Et quand on ne veut pas attendre, on fait comment ? on efface le cookie Smiley lol
Modifié par bazooka07 (05 Jun 2018 - 09:59)
jesus-reims a écrit :

J'ai exploré pas mal d'options mais rien trouvé de probant (inutile de chercher du côté du php vu que le script que je recherche doit s'exécuter côté client).


OUILLE !!! du coup, je désactive javascript de mon navigateur et je viens casser ton ton site.

Non et non.... désolé je suis pas méchant lol mais concernant la sécurité Bazooka t'a fais un bon résumé.
jesus-reims a écrit :

Là où ça se corse c'est que j'aimerai que le lien intranet n'apparaisse que lorsque la connexion au site du lycée se fait depuis le domaine.

Oui tu as raison, ça se corse là....
Problématique digne d'entreprise et OBLIGATION a 2000% d'utilisé un langage serveur.

Tu devrais peut être passer par des sessions PHP pour stocker le nom de domaine de l’appelant et passer par des requêtes http en envoyant les bon paramètre à ton intranet. Et tester le tout sur ton intranet (toujours coté serveur bien sur).
Par défaut je ne fais pas confiance et perso je trouve débile de mettre en gros en rouge clignotant un lien intranet sur un site public mais bon, la flemme d'expliquer pour la n-ième fois à l'administration que c'est un non sens de le faire.

Côté serveur rien à faire, le site internet est hébergé par l'académie et non par un serveur de l'établissement (ça serait trop simple sinon). Du coup un truc php du style file_exists donnera le même résultat que la personne se connecte depuis le domaine de l'établissement ou depuis l'extérieur.

Limite en fait c'est juste pour faire beau puisque de toutes manières un visiteur du site ne peut pas accéder au 172.16....... de l'intranet (enfin pas un utilisateur lambda)

Et oui, je connais aussi des CMS permettant de limiter le nombre de tentatives de connexion, il existe sous wp un plugin qui fait ça très bien Smiley cligne

En tout cas merci pour vos réponses, ça confirme bien mon opinion sur la question
Modifié par jesus-reims (05 Jun 2018 - 10:38)
Il s'agit de savoir de quelque type et volume d'informations on veut mettre à la disposition du public.
S'il n'est pas trop important, c'est de pousser depuis l'intranet l'information vers un serveur externe que tu pourras gérer. L' échange d'information se faisant uniquement à sens unique intranet vers extérieur.
Merci, c'est finalement bien ce que je pensai. je vais explorer cette option Smiley smile
Modifié par jesus-reims (05 Jun 2018 - 11:28)
Merci pour cette réponse mais ce n'est pas encore ce que je cherche.
Par contre je me suis rendu compte que ce topic n'est pas au bon endroit, si un modo pouvais le déplacer (ou le supprimer).

Je tente de réexpliquer mon problème en version un peu plus claire
- Je dispose d'un parc informatique avec domaine sur lequel nous possédons un accès intranet
- Le site du lycée est hébergé par l'académie (donc réseau différent)

L'idée set la suivante :
- Si une personne accède au site du lycée depuis un poste de l'établissement => le lien vers l'intranet est visible
- Si la personne ne se connecte pas depuis un pc de l’établissement => lien intranet non visible
Modérateur
Bonjour,

Les postes de l'établissement disposent-ils d'un adressage réseau fixe ou dynamique ?

Si c'est fixe, vous récupérez l'IP de la personne concernée, la comparez à votre liste d'adresse internes et effectuez l'inclusion du lien sur la page*.

Si c'est un adressage dynamique, là c'est corsé ! N'y-a-il pas moyen d'imposer l'adressage des postes du réseau de l'établissement ?


* à propos du lien à afficher, le lien sera contenu dans le script JS ce qui n'est pas top. L'idéal serait de pouvoir externaliser cette donnée et de la rapatrier quand nécessaire.
Edit: même remarque pour la liste blanche ; externalisez la fonction de comparaison et rendez le tout uniquement accessible depuis le domaine du site de l'établissement.
Modifié par Greg_Lumiere (11 Jun 2018 - 09:44)
Meilleure solution
Merci, finalement ce n'était pas si compliqué, l'établissement fonctionne sur une plage d'IP fixes donc effectivement l'option entrer les ip autorisées sur un fichier texte séparé et protégé est pile l'idée que je n'arrivais pas à trouver. J'étais parti sur des trucs du style récupération de l'entête http de page d'accueil de l'intranet mais cette option est bien plus simple

Bon, finalement j'ai opté pour une solution encore plus simple : le lien vers l'intranet se présente comme suit

<a href="le lien vers mon intranet.html" id="intranet">
      <img src="le lien vers mon intranet/image1.jpg" id="image1">
</a> 

avec le script suivant qui détecte la taille de l'image (si la connexion ne se fait pas depuis le domaine l'image ne charge pas donc sa taille est de 0)

var tailleimage = document.getElementById('image1').height;
if (tailleimage = 0) document.getElementById('intranet').style.display = 'none';
else document.getElementById('intranet').style.display = 'block';


Moralité : pourquoi faire simple quant on peut faire compliqué ?
Modifié par jesus-reims (19 Jun 2018 - 08:46)