什么更安全:许多子目录或许多子域?

信息安全 Web应用程序 tls csrf 云计算 天蓝色
2021-08-12 04:07:53

我有 3 个网站可以在 servicedefinition.csdef 中配置为“VirtualApplication”:

www.mydomain.net/enroll

www.mydomain.net/admin

www.mydomain.net/

...或者我可以将它们配置为站点:

enroll.mydomain.net

admin.mydomain.net

www*.mydomain.net

由于我打算在我的站点上安装 SSL,因此我计划购买 SAN 名称为“www.mydomain.net”或“*.mydomain.net”的域。我的问题是哪种方法更安全?

关于 cookie 域应该是什么或联合 URI 是否有任何指导?我对 VirtualApplication 方法的担忧是“/”的根 cookie 可能会使我受到各种攻击。

同样,我担心使用通配符证书,因为它更昂贵,而且它是通配符的事实消除了 EV 证书的任何可能性。此外,我相信通配符证书没有强有力的保证(在 SSL 篡改的情况下)。

2个回答

两者都不一定更安全,但我会给你一些意见,也许还有事实。

Host-extract可以确定主机名,这也可以通过虚拟主机枚举来实现。

DirBusterskipfishfuzzdb可以依靠强制浏览、目录索引和可预测的资源位置来查找易受攻击的目录结构和其他问题。蜘蛛和爬虫可以遍历目录,某些还可以遍历主机名(我知道 skipfish 可以做到这一点)。

在某些方面,虚拟主机更难管理(您提到了 SSL,这是一个很好的观点)。如果这对您来说很容易管理,那么它最终可能会更安全,因为目录能够比主机名泄漏更多的信息,并且更容易受到 XSS 等攻击(正如@Rook 在他的回答中所描述的那样) )。

我更喜欢至少将包含行为(例如 Flash、Ajax、Javascript 库、RIA 框架、动态页面等)的站点(按主机名)与包含格式或静态内容(HTML、CSS、XHTML、非动态的站点)分开页)。我认为将 SSL 域与非 SSL 域分开也是一种好习惯。这里的原因是,您可以在 SSL/TLS 主机名上提供比非 SSL/TLS 主机名更严格的上下文转义控制。如果您将 Javascript 与 CSS 与 HTML 分开,那么您也知道哪些上下文编码必须发生在哪些主机名上。在这篇文章中,我有更多关于如何处理 XSS 的建议,我提到不要在服务器上构建 HTML 和其他花絮

通常这绝不取决于安全专业人员或安全团队。这取决于开发人员、营销人员和 SEO 专家。他们决定获取主机名或 URI 结构的内容。我将进一步研究这个主题,并在获得新信息时更新我的​​答案。这是一个有趣的问题。

子域至少有一个安全优势。如果上面有 XSS 漏洞,enroll.mydomain.net它就不能用来劫持admin.mydomain.net. 这是由于同源策略如果需要,它还可以更轻松地将该应用程序移动到不同的服务器。隔离失败是一种很好的深度防御方法。

所以是的,子域比目录更安全。