2

Blueというアプリケーションを作成しようとしているとしましょう。Blueは、Webサイトの背景を青くするRubyonRailsアプリケーションです。また、ユーザーはログインして、アクセスして青色に変わったWebサイトを追跡できます。

Webサイトの背景のWebサイトを青くするために<link HREF="http://www.example.com/blue.css" type="text/css">、応答の本文に挿入するWebプロキシを作成しました。プロキシはラックアプリケーションとして実装され、Rails3RailscastのRackからのアプローチを使用してRailsルート内に配置されます。

root :to => BlueProxy, :constraints => { :subdomain => "proxy" }

私はこのアプローチのセキュリティについて非常に心配しています。デフォルトでは、アプリケーションのCookieのドメインはです.example.com。ユーザーが悪意のあるURLを入力した場合、Webサイトはユーザーのアカウントを操作する可能性があります。wwwアプリケーションでCookieのサブドメインのみを許可することで、これを修正できます。ただし、プロキシにもプロキシサイトのCookieを保存できるようにしたいと思います。

これが私の3つの質問です:

  1. これは悪いアプローチですか?この問題を解決するためのより良い方法はありますか?
  2. Railsで兄弟サブドメインCookieを分離しておくための最良の方法は何ですか?
  3. 私が見逃している他のセキュリティ上の懸念はありますか?
4

1 に答える 1

0

このアプローチは危険です。いくつかの理由から、プロキシを実行しないように注意してください。

  1. 違法なコンテンツにアクセスする人々から、自分の利益のためにコンテンツをホスティングする (そしてそれを変更する) まで、さまざまな法的問題が発生します。
  2. サイトが人気になると、帯域幅 (およびホスティング料金) が爆発的に増加します。
  3. iframe 内にコンテンツをロードすると、ブラウザの [戻る] ボタンがユーザーの期待どおりに機能しないなど、UX の問題が発生します。
  4. プロキシを実行すると、セキュリティの観点から考慮しなければならないいくつかの攻撃ベクトル (たとえば、サイトを介してプロキシされた悪意のあるサイトにパーマリンクを送信するなど) がサイトに開かれます。

バックエンドでオープン プロキシ (完全にオープンではないかもしれませんが、誰かがサインアップするのはどれほど難しいでしょうか?) を実行する代わりに、フロント エンドでブラウザ拡張機能またはグリースモンキー スクリプトを使用して、 Rails アプリからルールを作成し、クライアント側でスタイルシートの変更を追加します。

于 2013-01-14T14:52:18.207 に答える