2011-10-14 1 views
6

私はcoffeescript(javascript)の世界では初めてです。現在、SSL経由でRailsのバックエンドと通信する最初のbackbone.jsアプリケーションをビルドしています。backbone.jsのセキュリティ?

私は何度もそのことを話されてきました。"JavaScriptのセキュリティは悪いので、できるだけすべてのロジックサーバー側を実行してください。"私はサーバー側のセキュリティを手に入れましたが、クライアントはどうですか?

私のバックボーンモデルには、ユーザーが保護したいと思う情報が含まれている可能性があります。

更新1:@ Nupulに対する回答として、(integer, string, datetime)のタプルを保護したいと考えています。リモートシステムを危険にさらすことはありません。

更新2:唯一注意すべき点は、js-free HTMLビューで提供するために安全であると考えられるバックボーンに同じデータを提供することです。

+0

私が最初に守っておきたいことはわかりません...モデル内のデータは、クライアント側で操作される可変データ/コンテンツです。あなたが送信するものはおそらくSSL上であるため本当に何を本当に保護したいのですか?それが気になるのであれば、モデル内のすべてのものを暗号化してみてください。ただし、パフォーマンスが低く、おそらくそれほど価値のない過度のものであることはすぐにわかります:) – PhD

+0

@Alex:re:** Update 2 **:はい、そうです右。 –

+0

@JeremyBanksありがとう! –

答えて

11

JavaScriptのセキュリティは、あなたが意味する意味では、吸うだけではなく、文字通り不可能です。 できませんクライアントで実行する信頼コード。サーバーがクライアントのコンピュータに情報を送信することがないように、サーバーが情報をクライアントのコンピュータに送信しないように、プログラムを構造化する必要があります。

+5

悪意のあるユーザーがSSL上のユーザーのモデル内のデータを見るためには、ユーザーのマシンでページを見つめている状態にしておく必要があります。縮小されたjavascriptとデバッグを読んで内容を覗き、backbone.jsを知ってください – PhD

+0

@アレックス:深刻なことに、あなたは何を保護したいのですか? – PhD

+0

はい、@jeremybanksはまさにここにあります。「クライアントで実行するコードを信頼できません」というのは、クライアント側でセキュリティチェックを完全に無視しても、サーバー側でセキュリティチェックを実装する必要があります。 –