我只是想提出这个问题,如果社群认为需要阐述或澄清,我会对其进行编辑。
我今天得到了我认为是一个好主意的东西。 我大量购买Amazon.com。 亚马逊提供了一个程序,你所购买的一部分去你所select的名为“亚马逊微笑”的慈善机构。 你可以select“激活”慈善,转到“smile.amazon.com”(amazon.com的子域)。 我想使用Windows 10主机文件redirect,每当我input“amazon.com”自动去“smile.amazon.com”,以便我的慈善总是有益的。 不幸的是,这不是我所希望的。
首先,我以pipe理员身份打开Notepad.exe。 然后,我从记事本(path:)打开hosts文件
C:\Windows\System32\drivers\etc\hosts
并尝试所有以下,无济于事:
直接的url转换
smile.amazon.com amazon.com
用CMD获取URL为smile.amazon.com( 54.239.26.123 )
54.239.26.123 amazon.com
也添加了www子域路由
54.239.26.123 amazon.com 54.239.26.123 www.amazon.com
似乎没有任何工作( 当我键入_amazon.com_地址在URL栏中不会更改为“smile.amazon.com” ),但是,有某种证书错误。 我尝试了4种浏览器,包括Firefox,Chrome,SeaMonkey和IceDragon(清除所有这些caching),都无济于事。
根据这个服务器错误后,我试过这个:
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. 进行上述更改后,我得到这个错误:
铬:
你的连接不是私人的
攻击者可能试图从www.amazon.com上窃取您的信息(例如,密码,信息或信用卡)。 NET :: ERR_CERT_COMMON_NAME_INVALID
如果我点击“高级”,我得到这个:
这台服务器不能certificate这是www.amazon.com; 其安全证书来自smile.amazon.com。 这可能是由错误configuration或攻击者拦截您的连接引起的。
当我点击进入亚马逊无论如何,浏览器带我到amazon.com,我看到这个url:
(HTTPS [划叉的)://www.amazon.com
所以,我想我想知道的是:
DNSparsing和HTTPredirect是完全不同的东西,这种方法是错误的。 中毒您的本地DNSparsing以强制“amazon.com”parsing为假“smile.amazon.com”IP只会导致服务器端的SSL证书,HTTP会话和跨站点请求拒绝的问题:
首先,SSL证书。 amazon.com和smile.amazon.com是使用子域特定的证书来提供服务的,所以浏览器会在URL请求不匹配证书名称的情况下向用户提示错误。 因此,如果您向支持“smile.amazon.com”的服务器请求“amazon.com”资源,即使在执行HTTP请求之前,由于证书名称不匹配,您的浏览器也会发出警告。 当然,你可能会忽略这一点,但支持应用程序逻辑的JavaScript可能不会出现交叉域请求,使networking完全无用。
其次,如果您以任何方式绕过SSL问题,您的浏览器将向smile.amazon.com发送要求amazon.com内容的请求,这将导致服务器端引发的各种安全机制拒绝此类交叉站点要求。
最后,期待所有与服务器端会话pipe理,身份validation,cookievalidation等有关的问题。
如果您是Chrome用户,这可能会帮助您解决问题:
SmileAlways是一款Chrome扩展程序,可自动将您redirect到smile.amazon.com 。
由于amazon.com和smile.amazon.com都由多个IP地址托pipe,因此您的主机文件可能需要定期更新。
也可能是亚马逊使用主机头(这是您在浏览器中编写的域)来检测您尝试访问哪个站点,所以我认为需要另一种方法。 如果您可以设置本地networking服务器(无论是在您自己的计算机上还是在某处),您可以将该networking服务器主机设置为一个amazon.com虚拟网站,将其redirect到smile.amazon.com,然后制作hosts文件中的一个条目:
<ip-of-local-webserver> amazon.com
由于networking服务器会做redirect,所以您每次在浏览器中写入amazon.com时,浏览器将被redirect到smile.amazon.com。 这也将消除任何证书警告。
NBTSTAT是一个NetBIOS工具,与DNS无关。
如果您希望amazon.com通过您的主机文件parsing到smile.amazon.com的IP地址,那么在添加主机文件条目之后,您将ping通amazon.com,而不是smile.amazon.com。 你的目标是将amazon.comparsing为smile.amazon.com的IP地址,所以名称amazon.com是你在testing中应该使用的名字,以确保它parsing为smile.amazon.com的IP地址。
如果你添加一个条目在你的hosts文件中为amazon.com使用的地址为smile.amazon.com和pinging amazon.com返回的IP地址为smile.amazon.com然后主机文件正在工作。 如果你的浏览器直接指向amazon.com,那么它与你的主机文件无关。
我想这里有一点点混乱。 你不需要这些行:
smile.amazon.com amazon.com 54.239.26.123 amazon.com
但只有这些,redirectamazon.com地址smile.amazon.com的IP:
54.239.26.123 amazon.com 54.239.26.123 www.amazon.com
但它也不起作用:
第一:因为使用IP地址到达他们的NIC / NAT /网关 ,而URL指向在该IP地址后面的网站内的网页。 例如,如果您parsing了youtube.com ,然后尝试手动打开它的IP地址,则您将访问www.google.com ,因为它们都位于相同的地址后面,并通过其URL进行标识。 所以,想象一下,这两者都是在54.239.26.123的后面,而唯一的办法就是把url换成amazon.com ,这意味着你想访问amazon.com !
第二:假设smile.amazon.com由另一台服务器托pipe。 SSL / TLS证书颁发给URL,在某些情况下,即使您使用address.com访问网站,而不是www.address.com您也会得到证书错误,因为证书只颁发给后者。 因此,如果您尝试使用amazon.com的地址访问旨在用于smile.amazon.com的IP,您将获得证书安全警告,并且必须添加安全例外。
对不起,我不是Web服务/托pipe专家。 我只是尽我所能解释。