假设我正在尝试创建一个名为 Blue 的应用程序。Blue 是一个 Ruby on Rails 应用程序,可以将任何网站的背景变成蓝色。它还允许用户登录并跟踪他们访问过并变成蓝色的网站。
为了将网站的背景网站变为蓝色,我创建了一个插入<link HREF="http://www.example.com/blue.css" type="text/css">
响应正文的网络代理。代理被实现为机架应用程序,并使用Rails 3 Railscast 中的 Rack 方法放置在 Rails 路由中:
root :to => BlueProxy, :constraints => { :subdomain => "proxy" }
我非常担心这种方法的安全性。我知道默认情况下,我的应用程序中 cookie 的域是.example.com
. 如果用户输入了恶意 URL,网站可能会操纵用户的帐户。我可以通过只允许www
应用程序中的 cookie 的子域来解决这个问题。但是,我还希望代理能够为代理站点存储 cookie。
这是我的三个问题:
- 这是一个不好的方法吗?有没有更好的方法来解决这个问题?
- 在 Rails 中保持兄弟子域 cookie 分开的最佳方法是什么?
- 还有其他我遗漏的安全问题吗?