Auteur |
Message |
PrinceDePerse
Forumeur occasionnel
Sexe:
Messages: 41
|
Posté le:
Mar 14 Aoû 2012 - 09:44 |
|
Bonjour,
J'aimerai pouvoir faire quelque chose pour pouvoir par exemple lorsque je vais sur tel site (ex: http://www.web-ig.com) et bien je sois automatiquement redirigé vers une page html en local sur mon pc ou alors vers par exemple une image stockée sur internet...
Je sais qu'on peux rediriger via le fichier host en renseignant l'adresse ip du site à atteindre au lieu de l'ip du site http://www.web-ig.com mais par exemple si je veux être rediriger vers le site http://www.deezer.com je mets dans le fichier hosts :
78.40.123.120 http://www.web-ig.com
et bien je suis redirigé vers une page qui n'existe pas alors que pourtant deezer détient bien cette adresse ip (nslookup)
Ou alors je voudrais etre rediriger donc vers une page en local mais pour ça il faudrait faire pointer la page 404 vers une page faite par moi même.
J'ai chercher dans le registre mais pas trouvé de traces de la fameuse page 404 Not Found... Apparemment sous IE lorsque la résolution de nom ne se fait pas le chemin appelé est : "res://ieframe.dll/http_404.htm"
Comment le faire pointer ailleurs ?
Donc si jamais quelqu'un a une idée je suis preneur...
Merci |
_________________ On dit que certaines vies sont liées à travers le temps... Unies par un ancien appel qui résonne à travers les siècles. |
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
Zonag
Modérateur
Sexe:
Messages: 1298
Localisation: Toulouse
|
Posté le:
Mar 14 Aoû 2012 - 19:09 |
|
Hello,
PrinceDePerse a écrit: |
J'aimerai pouvoir faire quelque chose pour pouvoir par exemple lorsque je vais sur tel site (ex: http://www.web-ig.com) et bien je sois automatiquement redirigé vers une page html en local sur mon pc ou alors vers par exemple une image stockée sur internet... |
Dans un premier temps, si tu commancais par nous dire pourquoi tu veux faire ça ?
PrinceDePerse a écrit: |
Je sais qu'on peux rediriger via le fichier host en renseignant l'adresse ip du site à atteindre au lieu de l'ip du site http://www.web-ig.com mais par exemple si je veux être rediriger vers le site http://www.deezer.com je mets dans le fichier hosts :
78.40.123.120 http://www.web-ig.com
et bien je suis redirigé vers une page qui n'existe pas alors que pourtant deezer détient bien cette adresse ip (nslookup) |
C'est pas terrible comme méthode même si ça pourrais fonctionner.
En gros tu rajoute dans ton fichier host une fausse association nom de domaine > adresse IP. Le fichier host étant prioritaire sur le DNS c'est celle ci qui sera choisie en premier. Jusque la c'est ok.
Sauf que ... le protocole HTTP impose une petite subtilité. En fait en plus de joindre le serveur, il envoi dans les entetes l'url demandée. C'est ce qui permet d'héberger plusieurs sites web sur la même ip : le serveur regarde quel vhost est demandé par le visiteur et le fais pointer sur le site correspondant. (notion de VirtualHost sous Apache)
Le serveur de Deezer reçoit donc une requête pour se connecter à "www.web-ig.com" et ne sait bien sur pas y répondre. Deux possibilités selon comment est configuré le serveur : soit le site répond quel que soit l'url demandée et ça t'affiche quand même le site de Deezer, soit il traite le vhost, voit qu'il ne connait pas ce vhost et t'affiche une page par défaut.
PrinceDePerse a écrit: |
Ou alors je voudrais etre rediriger donc vers une page en local mais pour ça il faudrait faire pointer la page 404 vers une page faite par moi même.
J'ai chercher dans le registre mais pas trouvé de traces de la fameuse page 404 Not Found... Apparemment sous IE lorsque la résolution de nom ne se fait pas le chemin appelé est : "res://ieframe.dll/http_404.htm"
Comment le faire pointer ailleurs ? |
Pareil, précise un peu ton besoin parce que je ne comprends pas trop ce que tu veux faire la.
La page d'erreur 404 dépend du navigateur, elle sera différente sous IE, Firefox, Chrome ... Si ton but est de "restreindre" l'accès à certains sites, je vois mal comment tu peux faire pointer comme ça vers une 404, elle sera affichée si le serveur répond 404 à une requête que tu lui envoi.
PrinceDePerse a écrit: |
Donc si jamais quelqu'un a une idée je suis preneur...
Merci |
N'hésites pas à préciser ton besoin si nécessaire que je complète/précise ma réponse |
_________________ Zonag |
|
|
|
PrinceDePerse
Forumeur occasionnel
Sexe:
Messages: 41
|
Posté le:
Mer 15 Aoû 2012 - 10:53 |
|
Le but final est de pouvoir modifier le design de la page d'erreur qui s'affiche lorsqu'un site est inaccessible (par exemple bloqué dans le fichier hosts).
Sinon je pensais hébergé cette page html sur un site pour que tel ou tel site que je veux bloqué soit redirigé vers telle page erreur mais comme tu le dis, ça ne marchais pas car plusieurs sites on la même adresse IP.
Citation: |
Si ton but est de "restreindre" l'accès à certains sites, je vois mal comment tu peux faire pointer comme ça vers une 404, elle sera affichée si le serveur répond 404 à une requête que tu lui envoi. |
Je me suis trompé dans les termes ce n'est pas une page 404 qui s'affiche lorsque je cherche a atteindre un site bloqué dans le fichier hosts. Mais c'est une page (sous windows7 et internet explorer) : "res://ieframe.dll/dnserror.htm" qui s'affiche et je voudrais donc la modifier ou lorsque ce type d'erreur se produit faire redirigé vers une autre page.
Et encore merci pour ton aide!!
edit: j'vais essayer de voir si je peux décompiler cette dll pour modifier tout ça |
_________________ On dit que certaines vies sont liées à travers le temps... Unies par un ancien appel qui résonne à travers les siècles. |
|
|
|
Zonag
Modérateur
Sexe:
Messages: 1298
Localisation: Toulouse
|
Posté le:
Mer 15 Aoû 2012 - 11:35 |
|
Pour moi, cela reste une solution non fiable pour restreindre l'accès à certains sites. Tu fais une fausse résolution nom/ip pour rendre impossible la navigation vers un site donné mais tu es dépendant du fait qu'un site peut être changé d'ip de façon transparente n'importe quand (cela revient à ne pas bloquer l'accès à l'autoroute mais juste d'enlever les panneaux )
Dans l'absolu je te conseillerais plutôt de faire un filtrage via un proxy et pas via le fichier host qui n'est pas fait pour ça ...
Avec un proxy comme squid, tu peux bien sur personnaliser la page d'erreur pour mettre ce que tu veux (y compris des variables venant de tes règles de filtrage si besoin). |
_________________ Zonag |
|
|
|
Darshan
Modérateur
Sexe:
Messages: 270
Localisation: Chaville (92)
|
Posté le:
Mer 15 Aoû 2012 - 15:08 |
|
Salut.
Heu ... Si tu parles d'un site internet, les erreurs (404 et autres) peuvent être gérées depuis le fichier .htaccess avec des templates et du contenu différents.
Après si c'est du local, effectivement c'est moins paramétrable et je rejoins Zonag. |
_________________ -> Tumblr Loi Duflot.
-> Actualité immobilier. |
|
|
|
Vincent
Webmaster
Sexe:
Messages: 5584
Localisation: Montpellier
|
Posté le:
Mer 15 Aoû 2012 - 19:14 |
|
Si c'est pour interdire l'accès à certains sites, tu peux éventuellement passer par le fichier hosts en renvoyant le site à bloquer vers ton adresse de loopback (127.0.0.1).
Pour avoir une jolie page d'erreur, tu n'as qu'à héberger en local un serveur web, qui répond peu importe le site demandé. Mais bon, c'est moche.
Si c'est sur un réseau local de plusieurs machines, tu peux adopter la méthode avec un serveur web dans le réseau.
Le plus propre serait encore de mettre en place un serveur proxy, et que ça soit l'unique moyen de sortir sur internet. Et c'est lui qui fera le filtrage. |
_________________ Hey les amis, pensez à suivre @webig sur Twitter, et pourquoi pas me suivre moi @cybervince |
|
|
|
PrinceDePerse
Forumeur occasionnel
Sexe:
Messages: 41
|
Posté le:
Jeu 16 Aoû 2012 - 22:26 |
|
Vincent a écrit: |
Pour avoir une jolie page d'erreur, tu n'as qu'à héberger en local un serveur web, qui répond peu importe le site demandé. Mais bon, c'est moche. |
J'avais penser à ça aussi, mais je voulais pas rajouter de charges au processeur et je souhaitais faire un truc totalement transparent pour l'utilisateur.
Je suis d'accord que la mise en place d'un proxy squid est très bien pour un réseau local, mais pas tellement pratique pour un seul poste local.
J'ai réussi a repérer la dll où est stockée la page Res://ieframe.dll/dnserror.
Elle se situe dans : C:\Windows\System32\fr-FR\ieframe.dll.mui pour ceux à qui sa pourrait intéresser.
fichier que l'on peut ouvrir avec le logiciel "Ressource Hacker" qui permet d'éditer des fichiers win32 > .exe .dll .cpl .ocx...
Il faut ensuite aller dans l'onglet "23" et puis sélectionner la page html a modifier "DNSERROR.HTM" puis "1036" et là vous avez acces au code source de la page html, vous pouvez la modifier et ensuite cliquer sur "Compile Script" puis sauvegarder.
Mais lorsqu’en suite je me rends sur un site bloqué dans les fichiers hosts afin de voir cette nouvelle page html, IE me ressort encore l'ancienne page. J'ai pourtant supprimé tout le cache de IE et j'ai nettoyé "le cache des DLL" %windir%\Winsxs. J'ai rebooté le pc mais la page n'a pas changé alors que lorsque je retourne pour éditer le fichier, les modifications ont bien été apportées à la page html.
Faut-il modifier ce fichier en mode hors-ligne? Par exemple si je boot sur un cd Bart-Pe ??
Merci pour votre aide :p |
_________________ On dit que certaines vies sont liées à travers le temps... Unies par un ancien appel qui résonne à travers les siècles. |
|
|
|
Zonag
Modérateur
Sexe:
Messages: 1298
Localisation: Toulouse
|
Posté le:
Jeu 16 Aoû 2012 - 22:38 |
|
Houla ça devient trop exotique pour moi ça
A une époque IE et Windows étaient un peu trop liés ensemble, trop toucher au premier rendait le second assez instable. C'est plus trop le cas maintenant mais bon ...
Sinon squid est pas vraiment gourmand en tant que tel. Je l'ai souvent fait tourner sur de très vieilles configurations sans souci. Vu les CPU que l'on peut mettre dans un PC de bureau maintenant je suis même pas sur qu'on puisse se rendre compte qu'un process de plus tourne
Mais je maintiens ce que j'ai dit : utiliser le fichier host permet (par contournement) de créer un blocage au niveau réseau pas au niveau http. Tant mieux si ça correspond à ton besoin mais ça n'est pas adapté pour bloquer des url si c'est réellement ce que tu veux faire.
Par contre je rejoins Vincent : le plus propre si tu compte quand même utiliser le fichier host c'est d'avoir un mini serveur web sur ta machine (du type easyphp, wamp ...) et de mettre 127.0.0.1 dans ton fichier host de façon à afficher une page. |
_________________ Zonag |
|
|
|
PrinceDePerse
Forumeur occasionnel
Sexe:
Messages: 41
|
Posté le:
Ven 17 Aoû 2012 - 10:49 |
|
j'ai télécharger un petit serveur web léger sur ce site : http://www.zmws.com/dl/ (c'est ZazouMiniWebServer (Exécutable autonome))
Du coup j'ai pu créer un fichier de conf et lui faire un bel index.
Et voilà maintenant tout fonctionne parfaitement, lorsque je vais sur un site bloqué dans le fichier hosts je tombe bien sur ma page.
Merci pour votre aide |
_________________ On dit que certaines vies sont liées à travers le temps... Unies par un ancien appel qui résonne à travers les siècles. |
|
|
|
|