ユーザーがクライアント側のモデル/コレクションにアクセス/変更できないようにするにはどうすればよいですか?
2 に答える
allow
およびを使用しdeny
て、各クライアントに許可されるデータベースの変更を定義します。
ドキュメントから:
クライアントがコレクションに対してinsert、update、またはremoveを呼び出すと、サーバー上でコレクションのallowおよびdenyコールバックが呼び出され、書き込みを許可するかどうかが決定されます。少なくとも1つのallowコールバックが書き込みを許可し、denyコールバックが書き込みを拒否しない場合、書き込みは続行できます。
これらのチェックは、クライアントがデータベースに直接書き込もうとした場合にのみ実行されます。たとえば、イベントハンドラー内からupdateを呼び出します。サーバーコードは信頼されており、制限を許可および拒否する必要はありません。これには、Meteor.callで呼び出されるメソッドが含まれます。これらのメソッドは、許可と拒否に依存するのではなく、独自のアクセスチェックを実行することが期待されています。
許可を何度でも呼び出すことができ、各呼び出しには、挿入、更新、および削除関数の任意の組み合わせを含めることができます。関数は、操作が許可されるべきであると考える場合、trueを返す必要があります。それ以外の場合は、falseを返すか、まったく何も返さない(未定義)必要があります。その場合、Meteorはコレクションの他の許可ルールを検索し続けます。
マットが述べたように、回避策はもはや必要ありません。ただし、標準として、システムを保護するために自動公開パッケージを削除する必要があるようです。Meteorのドキュメントでは、コレクションの保護について説明しています:http: //docs.meteor.com/#meteor_collection