2

ユーザーがクライアント側のモデル/コレクションにアクセス/変更できないようにするにはどうすればよいですか?

4

2 に答える 2

7

allowおよびを使用しdenyて、各クライアントに許可されるデータベースの変更を定義します。

ドキュメントから:

クライアントがコレクションに対してinsert、update、またはremoveを呼び出すと、サーバー上でコレクションのallowおよびdenyコールバックが呼び出され、書き込みを許可するかどうかが決定されます。少なくとも1つのallowコールバックが書き込みを許可し、denyコールバックが書き込みを拒否しない場合、書き込みは続行できます。

これらのチェックは、クライアントがデータベースに直接書き込もうとした場合にのみ実行されます。たとえば、イベントハンドラー内からupdateを呼び出します。サーバーコードは信頼されており、制限を許可および拒否する必要はありません。これには、Meteor.callで呼び出されるメソッドが含まれます。これらのメソッドは、許可と拒否に依存するのではなく、独自のアクセスチェックを実行することが期待されています。

許可を何度でも呼び出すことができ、各呼び出しには、挿入、更新、および削除関数の任意の組み合わせを含めることができます。関数は、操作が許可されるべきであると考える場合、trueを返す必要があります。それ以外の場合は、falseを返すか、まったく何も返さない(未定義)必要があります。その場合、Meteorはコレクションの他の許可ルールを検索し続けます。

于 2012-12-14T01:08:01.343 に答える
2

マットが述べたように、回避策はもはや必要ありません。ただし、標準として、システムを保護するために自動公開パッケージを削除する必要があるようです。Meteorのドキュメントでは、コレクションの保護について説明しています:http: //docs.meteor.com/#meteor_collection

于 2012-05-04T16:57:17.367 に答える