为什么 Heroku 的 DNS 记录指向“<foo>.herokudns.com”而不只是 "heroku.com"

Why do the DNS records for Heroku point to "<foo>.herokudns.com" instead of just "heroku.com"

我正在尝试学习如何实现 DNS 服务器,我首先查看 Heroku

为什么他们 @ 指向 hidden-sierra-7936.herokudns.com.?为什么不只是 foo.herokudns.com.,或者更好,herokudns.com.(无子域),甚至更好,heroku.com.(主网站)。这是什么原因?是安全性、性能、架构需求,还是其他,所有这些?更具体地说,这些原因的详细信息是什么,是否取决于通过的请求数量,这就是为什么 <dynamic-name>.herokudns...,所以有很多?或者如果其中一个有错误,他们可以快速切换它?

最后,这些原因是否可以 avoided/countered/argued-against,这样您就可以使域变得更好一点,然后 heroku.com.?为什么不能在 heroku.com. 上做呢? (如果你正在构建 Heroku,那么显然 Heroku 不支持这个)。

我也在看this。看起来 Heroku 曾经 proxy.heroku.com 那样做,但出于某种原因他们改变了它。为什么?

就在 .heroku.com 上使用子域而言,这至少在一定程度上是一种安全缓解措施。

考虑一下 this blog post from GitHub 中提出的论点,这些论点是在将 Pages 站点从 .github.com 移至 .github.io 时发表的:

There are two broad categories of potential security vulnerabilities that led to this change.

  1. Session fixation and CSRF vulnerabilities resulting from a browser security issue sometimes referred to as “Related Domain Cookies”. Because Pages sites may include custom JavaScript and were hosted on github.com subdomains, it was possible to write (but not read) github.com domain cookies in way that could allow an attacker to deny access to github.com and/or fixate a user’s CSRF token.
  2. Phishing attacks relying on the presence of the “github.com” domain to create a false sense of trust in malicious websites. For instance, an attacker could set up a Pages site at “account-security.github.com” and ask that users input password, billing, or other sensitive information.