グローバルレベルのセキュリティオプション(クライアントクラスの作成など)を厳重に管理してください。)、クラスレベルのセキュリティオプション(たとえば、_Installationエントリを削除するクライアントを無効にすることができます。また、すべてのクラスのユーザーフィールド作成を無効にすることもできます)。
通常は、beforeSaveトリガーを使用して、ACLが常に正しいことを確認します。たとえば、_Userオブジェクトは、リカバリ電子メールの場所です。他のユーザーが互いのリカバリ電子メールを見ることはできないようにするため、_Userクラスのすべてのオブジェクトは読み取りと書き込みをユーザーにのみ設定する必要があります(public読み取りfalse、public write false)。
この方法では、ユーザー自身が自分の行を改ざんすることができます。他のユーザーは、この行がデータベースに存在することさえ気付かないでしょう。
これをさらに制限する方法の1つは、クラウド機能を使用することです。あるユーザーが別のユーザーにメッセージを送信できるとします。これは、メッセージの内容と、メッセージを送信したユーザーへのポインタと、メッセージを受信するユーザーに、このメッセージを新しいクラスのMessageとして実装できます。
メッセージを送信したユーザーはメッセージをキャンセルできる必要があり、メッセージを受信したユーザーが受信できる必要があるため、両方ともこの行を読み取る必要があるため(ACLには読み取り権限が必要です両方のために)。しかし、私たちはどちらもメッセージの内容を改ざんしたくありません。
したがって、ユーザーがこの行に加えようとしている変更が有効かどうかを確認するbeforeSaveトリガーを作成するか、誰にも書き込み権限がないようにメッセージのACLを設定するかユーザーを検証し、マスターキーを使用してメッセージを変更するクラウド機能を作成します。
ポイントは、アプリケーションのすべての部分でこれらの考慮事項を行う必要があります。私が知る限り、これを回避する方法はありません。
これも私に関係しています。私はいくつかのリンク(https://parse.com/questions/prohibit-user-from-changing-their-own-game-scoreとhttps://parse.com/questions/javascript-sdk-security)を見つけました。私はParseのACLシステムはおそらく私の特定のアプリケーションのニーズに十分安全だと思うが、私はある特定の用途のために、私は物事をロックダウンしようとするより多くのセキュリティ実践を学ぶ必要があるだろうと思う。 – Ryan