使用lvh.me代替localhost进行测试安全吗?

问题描述 投票:0回答:8

我想知道在本地开发时使用

lvh.me
代替
localhost
是否安全,因为
lvh.me
必须得到解决,并且IP可能会随着时间的推移而改变。

使用

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

dns localhost subdomain
8个回答
30
投票

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

您可以使用

localhost.localdomain
代替
localhost
,只需在
hosts
文件中添加以下行:

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 将始终为您的开发人员工作。因此,回答你的问题:不安全。您可以为自己注册一个域名,但正如我之前所说,某些解析器会阻止与私有地址空间相对应的答案。


16
投票

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

Firefox 和 Google Chrome 现在都将

*.localhost
名称视为
localhost
。他们还对端口号做了正确的事情。

要自己测试一下,启动本地http服务器监听8000端口:

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

9
投票

不可以,因为目前 http://lvh.me 的域名已过期。😬

enter image description here


2
投票

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

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

localhost


0
投票

如果您不想重写代码,快速解决方法是打开主机文件

sudo nano /etc/hosts

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

127.0.0.1 yoursubdomain.lvh.me

ctrl-x
然后
y
然后
enter

那么你就可以出发了


0
投票

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

对于 Linux 或 osx,您可以在终端中运行:

dig X.nip.io

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

https://nip.io/

https://sslip.io/


0
投票

其他人说得好:不,这并不能保证安全。

到目前为止,您拥有的一个选项尚未出现在此处的答案中,那就是您可以设置自己的

lvh.me
,足够简单:

如果您有权访问任何可以设置 DNS 记录的域,您只需将

A
记录添加到
*.localhost.yourdomain.com
(或
*.lvh.yourdomain.com
)并将其指向
127.0.0.1
。这与
lvh.me
提供的效果相同。


-2
投票

您只需将浏览器指向

myproject.apps.localhost
www.example.net.localhost

© www.soinside.com 2019 - 2024. All rights reserved.