3

私は現在、次のWebアプリケーションを開発するための最良の方法を探しています。Backbone.jsを使用して、シングルページアプリケーションを構築することを考えています。しかし、ほとんどすべてがクライアント側で行われるため、アプリを保護する方法を本当に想像することはできません。もちろん、ユーザーが私のRESTful Apiにアクセスできないようにして、ユーザーが私のデータにアクセスできないようにすることもできます。ただし、すべてのview / model / collection /templatejsファイルには引き続きアクセスできます。

または、php(laravel)を使用してjsファイルを提供する既知の方法があります。これにより、それぞれのユーザーに必要なファイルのみを提供できます。

Webを検索しても解決策が見つかりませんでした。しかし、私は、さまざまなユーザー権限を含むクリーンで安全な認証方法を必要としている孤独な人だとは思いません。

前もって感謝します!

4

4 に答える 4

2

バックエンドアプリケーションはバックエンド(= API)からデータをフェッチし、おそらくいくつかの変更を送り返します。バックエンドが保護されている限り、このコードに「セキュリティホール/リーク」を含めることはできません。人々があなたのコードを盗むのを恐れているなら、あなたはいつでもJSを縮小することができます(これについてはgrunt.jsとalmond.jsをチェックしてください)

バックエンドを保護するために、Laravelの認証クラスと前述の認証フィルターを利用できます。

通常の認証に加えて、特定のユーザーに割り当てることができるロールを実装して、バックエンド内の特定のリソースへのアクセスを多かれ少なかれ与えることができます。

于 2012-11-20T18:41:24.097 に答える
0

これが私が試す方法です:

アプリケーションを2つの部分に分けます。

一部-別のページで通常のLaravelAuthを介してログインし、ユーザーがログインすると、別のビューでシングルページアプリを提供します。

これはうまくいきませんか?

于 2012-11-19T18:13:11.833 に答える
0

Webサービスは、作成する他のWebアプリケーションと何ら変わりはありません。1日の終わりに、クライアント(攻撃者でもある)に機能を公開します。クライアントが何に実装されているかは関係ありません。危険な機能を公開すると、ハッキングされます。

セッション状態を設定し、ユーザーIDを追跡し、ユーザーがアクセスを許可されているリソースにのみアクセスしていることを確認します。

于 2012-11-20T00:02:36.317 に答える
0

JS/テンプレートファイルがどのように公開されるかは本当に重要ではないと思います。基本的に、認証されたユーザーにのみデータのやり取りを許可する必要があります。これを2つの別個のアプリケーションと考えてください。

  1. フロントエンドアプリケーションがログインし、Cookieが保存されます(または他の永続性が使用されます)。
  2. 次に、バックエンドアプリケーションは永続認証を使用して、データに対するすべてのユーザー要求とすべてのユーザーアクションを検証します。

このように、セキュリティについて心配する必要はありません。クライアントはサーバーが許可するデータのみをフェッチでき、同様に、サーバーが許可する範囲でのみデータと対話できます。ログインしていても、セキュリティをクライアント側に依存するべきではありません。そうしないと、悪意のあるユーザーがすべてのフロントエンドコードを保存し、認証なしで使用する可能性があります。

于 2012-11-20T00:15:28.413 に答える