越来越多的Web应用程序(最著名的是37Signals的Basecamp)为每个用户/帐户分配一个子域。我想知道这种方法的利弊是什么。是否有这样做的特殊原因,或者这仅仅是装饰性的功能?例如,这是否允许更好/更容易的可伸缩性和更高的安全性?
最佳答案
我认为这可能与“同源起源政策”有关。如果两个用户的成员页面位于不同的子域中,则浏览器将阻止来自一个子域的脚本访问另一个子域中的文档。因此,如果Mallory注册了网站(mallory.example.org)并在其上放置了恶意脚本,则该脚本将无法修改Alice网站(alice.example.org)的DOM。如果他们使用的是路径(example.org/mallory和example.org/alice),那么SOP将无法正常工作,Mallory的脚本可能会在Alice的页面上做各种坏事,例如假冒登录屏幕并发布密码回到马洛里。
这种SOP保护甚至在两个子域都解析为相同的IP时也有效-只要URL的主机部分不同,现代浏览器就会阻止跨域脚本尝试(以及其他一些潜在的危险)。
关于web-applications - Web应用程序中子域的优点/缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4722363/