Use Windows Hosts File To Redirect External Url to Subdomain?

I'm going to just post this question and I'll edit it if the community determines it needs elaboration or clarification.

The Issue

I got what I thought was a brilliant idea today. I shop Amazon.com a lot. Amazon offers a program where a portion of all your purchases go to a charity of your choice called "Amazon Smile". You can choose to "activate" the charity by going to "smile.amazon.com" (a subdomain of amazon.com). I want to use the Windows 10 hosts file to redirect whenever I type "amazon.com" to go to "smile.amazon.com" automatically, so that my charity always benefits. Unfortunately, it is not working as I had hoped.

What I have Tried

First I opened Notepad.exe as admin. Then, I opened the hosts file from Notepad (path:)

C:\Windows\System32\drivers\etc\hosts

and tried all of the following, to no avail:

  • Direct url conversion

    smile.amazon.com amazon.com

  • Pinged with CMD to get URL for smile.amazon.com (54.239.26.123)

    54.239.26.123 amazon.com

  • Added the www subdomain routing as well

    54.239.26.123 amazon.com 54.239.26.123 www.amazon.com

  • None of it seems to have worked (when I type _amazon.com_ the address in the URL bar doesn't change to "smile.amazon.com"), however, there is some kind of certificate error. I tried 4 browsers including Firefox, Chrome, SeaMonkey, and IceDragon, (clearing cache on all of them), to no avail.

  • As per this Server Fault post, I tried this:

    • ipconfig /flushdns
    • ping smile.amazon.com Pinging smile.amazon.com [54.239.26.123] with 32 bytes of data: Request timed out.
    • C:\WINDOWS\system32>nbtstat -R Successful purge and preload of the NBT Remote Cache Name Table.

Certificate/Saftey Errors

After making the above changes I get this error:

Chrome:

Your connection is not private

Attackers might be trying to steal your information from www.amazon.com (for example, passwords, messages, or credit cards). NET::ERR_CERT_COMMON_NAME_INVALID

If I click "Advanced", I get this:

This server could not prove that it is www.amazon.com; its security certificate is from smile.amazon.com. This may be caused by a misconfiguration or an attacker intercepting your connection.

When I click to proceed to amazon anyway, the browser takes me to amazon.com and I see this in the url:

(https[crossed-out])://www.amazon.com


My Questions

So, I guess what I want to know is:

  1. Is redirecting amazon.com to smile.amazon.com even possible through the Windows hosts file?
  2. How can I do it?
1
задан 13 April 2017 в 15:14
6 ответов

Разрешение DNS и перенаправление HTTP - это совершенно разные вещи, и такой подход неверен. Отравление вашего локального DNS-разрешения для принудительного преобразования "amazon.com" в поддельный IP-адрес "smile.amazon.com" приведет только к проблемам с сертификатами SSL, HTTP-сеансами и отказами межсайтовых запросов на стороне сервера:

Во-первых, сертификат SSL. amazon.com и smile.amazon.com обслуживаются с использованием сертификатов для конкретных субдоменов,поэтому браузеры сообщают пользователю об ошибке в том случае, если URL-запрос не соответствует имени сертификата. Таким образом, если вы запрашиваете ресурсы «amazon.com» на серверах, поддерживающих «smile.amazon.com», даже до того, как HTTP-запрос может быть выполнен, ваш браузер предупредит вас из-за несовпадения имени сертификата. Конечно, вы можете игнорировать это, но javascript, поддерживающий логику приложения, может отсутствовать при наличии перекрестных доменных запросов, что делает Интернет полностью бесполезным.

Во-вторых, если вы каким-либо образом обойдете проблемы с SSL, ваш браузер отправит запросы на smile.amazon.com, запрашивающие содержимое amazon.com, что приведет к появлению на стороне сервера всевозможных механизмов безопасности, которые отклоняют такие межсайтовые запросы.

И, наконец, ожидайте всевозможных проблем на стороне сервера. управление сеансом, аутентификация, проверка файлов cookie и т. д.

4
ответ дан 3 December 2019 в 16:25

Поскольку и amazon.com, и smile.amazon.com обслуживаются более чем одним IP-адресом, ваш файл hosts может потребовать регулярного обновления.

Также может быть, что Amazon использует заголовок хоста (который представляет собой домен, который вы пишете в браузере), чтобы определить, к какому сайту вы пытаетесь получить доступ, поэтому я думаю, что необходим другой подход. Если у вас есть возможность настроить локальный веб-сервер (либо на вашем собственном компьютере, либо где-то на хосте), вы можете сделать этот веб-сервер хостом фиктивного веб-сайта amazon.com, который выполняет перенаправление на smile.amazon.com, а затем сделать одна запись в файле hosts:

<ip-of-local-webserver>    amazon.com

Поскольку веб-сервер будет выполнять перенаправление, ваш браузер будет перенаправляться на smile.amazon.com каждый раз, когда вы пишете amazon.com в браузере. Это также устранит любые предупреждения о сертификатах.

1
ответ дан 3 December 2019 в 16:25
  1. NBTSTAT - это инструмент NetBIOS, не имеющий ничего общего с DNS.

  2. Если вы хотите, чтобы amazon.com разрешал IP-адрес smile.amazon.com через ваш файл хоста, вы должны пинговать amazon.com, а не smile.amazon.com после того, как вы добавили запись файла хоста. Ваша цель - преобразовать amazon.com в IP-адрес smile.amazon.com, поэтому имя amazon.com - это имя, которое вы должны использовать в своих тестах, чтобы убедиться, что оно разрешается в IP-адрес smile.amazon.com. .

  3. Если вы добавляете запись в файлы хостов для amazon.com, используя IP-адрес для smile.amazon.com, а пинг amazon.com возвращает IP-адрес для smile.amazon.com, то файлы хостов работают. Если ваш браузер все равно направляет вас на amazon.com, это не имеет ничего общего с вашим файлом hosts.

0
ответ дан 3 December 2019 в 16:25

Думаю, здесь есть небольшая путаница. Вам не нужны эти строки:

smile.amazon.com amazon.com
54.239.26.123 amazon.com

Но только те, которые перенаправляют адрес amazon.com на IP-адрес smile.amazon.com :

54.239.26.123 amazon.com
54.239.26.123 www.amazon.com

Но это не так. t работают либо:

1-й: , потому что, используя IP-адрес , вы достигнете их NIC / NAT / шлюза , а URL указывает на веб-страницу на веб-сайтах за этим IP-адресом. Например, если вы разрешите youtube.com , а затем попытаетесь вручную открыть его IP-адрес, вы попадете на www.google.com , потому что оба они размещены по одному адресу ( es) и идентифицируются по их URL. Итак, представьте, что оба размещены за 54.239.26.123 , и единственный способ получить к ним доступ - это URL-адрес, который вы заменили на amazon.com , что означает, что вы хотите посетить amazon .com !

2-й: Предположим, что smile.amazon.com размещен на другом сервере. Сертификаты SSL / TLS выдаются URL-адресам, в некоторых случаях, даже если вы заходите на веб-сайт, используя address.com вместо www.address.com , вы получите ошибку сертификата, потому что сертификат выдается только последним. Итак, если вы попытаетесь получить доступ к IP-адресу, предназначенному для smile.amazon.com , используя адрес amazon.com , вы получите предупреждение о безопасности сертификата, и вам нужно будет добавить безопасность исключение.

Извините, я не эксперт в веб-сервисах / хостинге. Я просто постарался объяснить это.

0
ответ дан 3 December 2019 в 16:25

Это может помочь вам решить вашу проблему, если вы являетесь пользователем Chrome:

SmileAlways - это расширение Chrome, которое автоматически перенаправляет вас на smile.amazon.com.

.
2
ответ дан 3 December 2019 в 16:25

Я искал решение для перенаправления URL-адреса для другого и нашел этот поток. Я думал, что другие сочтут мой вывод полезным, даже если это не прямой ответ на ваш вопрос, тем не менее, это решение проблемы.

Я предлагаю вам попробовать вместо редактирования файла hosts в Windows использовать плагин, например Redirector для Firefox или Redirector для Chrome .

Он отлично работает, не позволяя мне просматривать некоторые веб-сайты, когда я не хочу, например, для повышения производительности или для заставляю себя использовать новую услугу. Можно представить себе использование перенаправителя, чтобы прекратить использование hotmail.com и использовать другую настраиваемую службу, например, без изменения каких-либо других привычек.

1
ответ дан 3 December 2019 в 16:25

Теги

Похожие вопросы