10
votes

Comment puis-je arrêter d'autres domaines de pointer vers mon domaine?

J'ai récemment découvert qu'il y ait d'autres noms de domaine pointant sur mon site Web (qui ne m'appartiennent pas) et je me demandais comment les gens peuvent arrêter / empêcher cela de se produire. J'engage cela sur Peer1 en utilisant IIS et j'utilise ASP.NET C #.

Puis-je utiliser une httpmodule ou un autre code pour rejeter les noms de domaine qui ne sont pas les miens?

Y a-t-il une meilleure façon?


5 commentaires

Votre site ne contrôle pas ce que DNS enregistre pointer sur l'adresse IP de votre serveur.


Mais vous ne pouvez pas trouver le nom de domaine de la demande de la demande? Si vous pouviez découvrir, vous pouvez ensuite rediriger vers une autre page. Certains sites ne font pas cela pour empêcher la liaison chaude?


Pourriez-vous mettre à jour la question avec des détails sur votre environnement d'hébergement. Hébergez-vous ce site vous-même ou est-ce une entreprise d'hébergement? Quel est le serveur Web (devinant IIS) et avez-vous accès administratif à celui-ci?


Votre problème est-il dans lequel ils incluent votre site dans un cadre?


Pouvez-vous répondre à la question de Bob - incluent-ils le site dans un cadre ou avez-vous des problèmes de contenus en hotlinking car Bemused a suggéré.


7 Réponses :


6
votes

Vous devez activer l'hébergement virtuel basé sur le nom et indiquer uniquement votre site Web réel pour les noms de domaine souhaités. Pour tous les autres noms, vous pouvez afficher un message d'erreur approprié.

Détails: Votre serveur Web est contacté par son adresse IP. Vous ne pouvez rien faire pour arrêter cela. Tout le monde peut dire: "Connectez-vous à cette adresse IP". Par exemple, tout le monde peut enregistrer de nouveaux noms de domaine à pointer vers l'adresse IP de votre serveur. Cependant, à l'intérieur de la demande, il existe un champ hôte avec un nom comme www.example.com . .

Lors de la réception de la demande, votre serveur peut choisir d'inspecter le champ hôte et de fournir un contenu différent en fonction de cette valeur. Dans le cas le plus simple, le serveur ignore entièrement le champ et imprime toujours le même contenu. Mais dans une configuration plus sophistiquée, appelée "hébergement basé sur le nom (virtuel)", le serveur choisit le contenu en fonction du nom d'hôte.

Voici la façon dont les webhostes partagés fonctionnent: il y a un seul serveur, mais en fonction du nom d'hôte demandé, il accueille un site Web différent pour chaque nom.

Par conséquent, si vous souhaitez attacher votre contenu de serveur à votre nom d'hôte, vous devez indiquer à votre serveur de produire votre site Web uniquement pour votre nom désiré et de produire un site Web différent (erreur) pour tous les autres cas.

dans Apache Ceci est trivial pour configurer, vérifiez simplement leur documentation; Pour IIS, je ne saurais pas mais j'imagine que c'est tout aussi simple.


4 commentaires

Pourriez-vous expliquer cela un peu plus? Je suis un peu perdu sur la façon d'exécuter ce que vous demandez dans IIS.


@Kerrek, qu'en est-il de spécifier l'en-tête d'hôte dans IIS? (Le garder simple)


@Waqas: Je ne sais pas IIS. Vérifiez la documentationo pour "hébergement basé sur nom" ou "hébergement virtuel basé sur le nom", quelque chose comme ça. Peut-être que quelqu'un d'autre ici peut vous dire comment, consultez la réponse de @bob Vale par exemple.


Ceci est assez trivial dans IIS 7 sous Windows 2008, en utilisant des en-têtes d'accueil



3
votes

Si votre environnement d'hébergement est IIS et que vous avez accès à l'administrateur. Définissez votre site Web par défaut pour afficher une page d'erreur, puis créer un nouveau site avec l'en-tête d'hôte correspondant à votre domaine pour pointer sur votre site Web.


0 commentaires

0
votes

Si je me souviens bien lorsque je vérifie que je vérifie mes sites CPanel, j'ai vu une fonctionnalité qui a cessé de redirections à mon domaine si coché. J'utilise hostSo comme mon hôte, alors vérifiez leur test CPanel pour cela.

J'espère que cela aide Abast Atleast :)

Fredrik Wirth


0 commentaires

1
votes

comme solution temporaire, vous pouvez le faire. Peut être sur la charge de la page d'accueil ou le débutant.

if(!Request.Url.Host.ToLower().contains("mysite.com")){
  Response.Redirect("error.html");
}


0 commentaires

0
votes

Si vous souhaitez gérer dans le code, faites-le dans global.aSax à BeguRequest comme ci-dessous

void Application_BeginRequest(object sender, EventArgs e)
{
    if (!context.Request.Url.Host.ToLower().Equals("www.mydomain.com"))
    {
        context.Rewritepath("/invalidpage.aspx");
    }
}


2 commentaires

Il est possible que le nom d'hôte ne contienne pas "www"


Ouais tu as raison, je suggérais juste que mon code ne soit peut-être pas exactement mis en œuvre.



1
votes

in IIS Il existe un paramètre appelé liaisons Cela vous permet de sélectionner les noms d'hôte que votre site Web répondra à. Cette fonctionnalité permet une instance d'IIS d'héberger des sites Web mulitale sur une seule adresse IP.

Si vous souhaitez que votre site fonctionne uniquement pour http. : //example.com/ et http://www.example.com/ , vous devrait définir les liaisons pour fonctionner uniquement pour "exemple.com" et "www.example.com".

L'exception est si vous utilisez SSL. Si vous êtes, IIS ne peut pas déterminer le nom d'hôte et vous devrez probablement utiliser une adresse IP dédiée à votre site. Dans ce scénario, la solution d'User608576 fonctionnera. Bien que je mettrais ce code dans votre global.asax fichier: xxx


0 commentaires

3
votes

C'est ma solution. Cela fonctionne vraiment vite et résolu mon problème.

Insérez ce code dans votre .htacces xxx

Il suffit de mettre votre domaine.


0 commentaires