使用 lvh.me 而不是 localhost 进行测试是否安全?

It is safe to use lvh.me instead of localhost for testing?

提问人:Josu Goñi 提问时间:7/30/2018 更新时间:3/7/2023 访问量:25041

问:

我想知道使用而不是在本地开发时是否安全,因为必须解决并且 IP 可能会随着时间的推移而改变。lvh.melocalhostlvh.me

使用的目标是能够处理子域,因为没有顶级域。lvh.melocalhost

DNS localhost 子域

评论

3赞 Franklin Yu 8/16/2019
我现在改用 readme.localtest.me,因为至少我可以联系维护者。
8赞 alexandre-rousseau 6/7/2021
lvh.me刚买,不再工作了
1赞 jerm 6/23/2021
@RousseauAlexandre lvh.me 对我来说很好,fwiw。
0赞 Marius Butuc 1/28/2023
回复:已被购买且不再工作 - 当时有一个更新:twitter.com/levicook/status/1402069015338512385(通过下面的回复进行可发现的筛选。lvh.me
0赞 KhalfaniW 10/19/2023
如果您拥有域,则可以将子域通配符 A 记录指向 127.0.0.1 以执行相同的操作

答:

27赞 Alexandre Fenyo 7/30/2018 #1

除非您是 lvh.me 的维护者,否则您无法确定它不会消失或更改其 RR lvh.me。

您可以通过在文件中添加以下行来代替 ,而不是 :localhost.localdomainlocalhosthosts

127.0.0.1 localhost localhost.localdomain
::1 localhost localhost.localdomain

这比使用 lvh.me 更好,因为:

  • 在开发时,您可能并不总是可以访问 DNS 解析器
  • lvm.me 不使用与本地主机对应的本地 IPv6 地址进行应答,而只能使用 IPv4 地址 127.0.0.1 进行应答
  • 出于安全目的,一些ISP DNS解析器会阻止与私有地址空间相对应的答案(以避免泄露内部信息)

由于您在评论中说您不想更新主机文件,因此您无法确定 lvh.me 始终适用于您的开发人员。因此,回答您的问题:这是不安全的。您可以为自己注册一个域,但正如我之前所说,一些解析器会阻止与私有地址空间相对应的答案。

评论

1赞 Josu Goñi 7/30/2018
这个想法是不必更改主机文件,因此您可以克隆存储库并开始工作。
0赞 Alexandre Fenyo 7/30/2018
哪个回购?你的问题没有提到这个限制。
1赞 Josu Goñi 7/30/2018
那是因为我问它是否安全,这是一个普遍的问题。除非有某种妥协来保留指向 127.0.0.1 的域,否则它不是。
3赞 Alexandre Fenyo 8/4/2018
安全到底是什么意思?
10赞 icaromh 6/7/2021
今天是你绝对正确的一天。
-2赞 hurikhan77 10/6/2020 #2

您只需将浏览器指向 或 即可。myproject.apps.localhostwww.example.net.localhost

1赞 jdinunzio 6/5/2021 #3

像 DNS 服务或只是 DNS 服务,因此您发布给它们的唯一内容就是您正在使用的名称或主机。它们可以随时解析到任何 IP,但前提是您仅将它们用于使用虚假数据的本地测试,您将是安全的。lvh.melocaltest.me

但是,如果他们关闭了服务怎么办?同样,由于您应该仅将它们用于本地测试,因此您将立即获得反馈,并且可以轻松返回使用。localhost

9赞 bennick 6/8/2021 #4

不,因为截至目前,http://lvh.me 有一个过期的域名。 😬

enter image description here

评论

0赞 AlexChaffee 9/28/2021
请参阅 twitter.com/levicook/status/1402069015338512385 - lvh.me 在 2021 年 6 月(撰写此答案的时间)短暂下降,但现在又恢复了。他得到了捐款来维持它的运转。–
14赞 Eric Dobbs 6/8/2021 #5

lvh.me 在 2021 年 6 月 7 日未解析为 127.0.0.1。根据您无法控制的 DNS 名称,会带来这种风险。尽管域名在当天结束时已恢复,但此答案提供了一些替代方法,以依赖其他人的DNS配置。

Firefox 和 Google Chrome 现在都像 .他们还对端口号做了正确的事情。*.localhostlocalhost

要自行测试,请启动侦听端口 8000 的本地 http 服务器:

python -m http.server 8000

然后尝试这些链接

此技巧对命令行程序没有帮助。例如,此命令将无法解析主机:

curl http://example.localhost:8000

Curl 本身提供了许多其他技巧,如果您需要在命令行上自定义子域,这些技巧可能适合您。例如,这个技巧有效:

curl --resolve example.localhost:127.0.0.1 \
  http://example.localhost:8000

还值得注意的是,类似的服务仍然可用。

请参见 https://readme.localtest.me

最后一种选择是配置自己的通配符 CNAME 以解析为 127.0.0.1。例如:

*.my.example.com.   1800    IN  CNAME   my.example.com.
my.example.com.     1800    IN  A       127.0.0.1

评论

2赞 Eric Dobbs 6/8/2021
lvh.me 的原始保管人放弃了监护权:“我不打算续签;十多年来,我个人没有使用过这种东西,这对我来说是一种奇怪的自付费用 twitter.com/levicook/status/1401935705199185924
0赞 jack blank 6/8/2021
将会话传输到具有 .当我有 LVH 时,它工作正常。localhost
0赞 Eric Dobbs 6/9/2021
@jack空白,我将提供这个有根据的猜测(不确定您所说的“转移会话”是什么意思)。短篇小说:“是的。长篇大论:网络会话依赖于浏览器cookie进行识别,浏览器cookie的范围仅限于域名。Firefox和Chrome将whatever.localhost视为域名。因此,通常的 cookie 规则适用。服务器端会话数据按预期工作。
0赞 AlexChaffee 9/28/2021
请参阅 twitter.com/levicook/status/1402069015338512385 - lvh.me 在 2021 年 6 月(撰写此答案的时间)短暂下降,但现在又恢复了。他得到了捐款来维持它的运转。
1赞 Eric Dobbs 9/30/2021
感谢您的更新,@AlexChaffee。我已经相应地编辑了这个答案。
0赞 Chris King 7/13/2021 #6

如果你不想重写你的代码,快速修复是打开hosts文件

sudo nano /etc/hosts

粘贴(将 yoursubdomain 替换为您要调用的子域)

127.0.0.1 yoursubdomain.lvh.me

推然后然后ctrl-xyenter

那你就可以开始了

0赞 sMyles 3/2/2022 #7

这取决于你在做什么。如果是本地开发,那么大多数时候是的,如果你想检查,你总是可以解决它:

对于 linux 或 osx,您可以在终端中运行以下命令:

dig X.nip.io

它应始终返回 127.0.0.1。因此,虽然这不是“最安全”的方法(因为您不管理 DNS 本身),但我仍然经常在必要时使用它来解析 TLD。以下是截至 2022/2023 年仍然存在的一些有效的信誉良好的网站:

https://nip.io/

https://sslip.io/

评论

0赞 dirkjot 6/22/2023
这不再正确:nslookup on x.nip.io 结果为 。但是使用 127.0.0.1.nip.io 是有效的。*** Can't find x.nip.io: No answer