Web アプリケーションのセキュリティを開発する方法について質問があります。すべての JavaScript コードが公開されており、誰でも便利そうなパラメーターを使用して AJAX 呼び出しを直接実行できると仮定すると、データベースのステータスを直接変更する呼び出しは非常に危険です。
つまり、「changePoints」または「updateUserState」として呼び出しを行うと、悪意のあるユーザーは、たとえばゲームのロジックを破って、無制限のお金やポイントを取得することができます。
この問題に対する私の直感的な解決策は、クライアントとサーバーを通信する呼び出しを設計して、そのパラメーターを介してアプリのロジックを壊すことができないようにすることです。ゲームの例では、「buySomething」のような呼び出しは安全です。なぜなら、サーバーはその「何か」を追加し、それにかかるお金を差し引く責任があるからです。「addSomething」「changeMoney」という 2 つの呼び出しは同じタスクを実行できますが、明らかな理由から安全ではありません。
私の疑問は、この推論が私を導くという結論から生じます。クライアント側の MVC パターンのモデル部分は、特に「アクティブ レコード」を適用する場合、AJAX 呼び出しがデータベース サーバーに直接相関するため、非常に危険に見えます。また、私の直感的なソリューションでは、アプリケーション ロジックの多くがサーバー側で開発される傾向があり、面倒になる可能性があります。
足りないものはありますか?よりスマートなソリューションはありますか? クライアント側でモデルとアクティブ レコードを使用することは安全ではありませんか?
ご清聴ありがとうございました。