通常の観点からすると、フロントエンドからのデータを信頼することはできませんが、たとえば、フォームを送信するときは、フロントエンドのJSを検証する必要があり、バックエンドも検証する必要があります。検証するものは少ないほうが良いですが、(ルールが複雑です) は面倒です。フロントエンドのデータが正当であることを確認する方法、またはバックエンドで簡単に検証できる方法はありますか (似ています)。フォーム トークン (ただし、繰り返しの送信を防ぐために使用されます)
通常の観点からすると、フロントエンドからのデータを信頼することはできませんが、たとえば、フォームを送信するときは、フロントエンドのJSを検証する必要があり、バックエンドも検証する必要があります。検証するものは少ないほうが良いですが、(ルールが複雑です) は面倒です。フロントエンドのデータが正当であることを確認する方法、またはバックエンドで簡単に検証できる方法はありますか (似ています)。フォーム トークン (ただし、繰り返しの送信を防ぐために使用されます)
フロントエンド検証はユーザー エクスペリエンスを向上させるだけですが、バックエンド検証は必須です。
ご質問に関しては、トピック フロントエンドとバックエンドの同型性 を検索してください。一般的なアプローチは、nodejs を中間層として使用し、バックエンドを回避するために、nodejs に一連のフロントエンド検証コードをデプロイすることです。 -end (ここでのバックエンドとは、nodejs 自体ではなく、nodejs と通信するバックエンドを指します)、検証ロジックを再実装します。
yii などのフレームワークを使用します。
各フォームは、モデル層でフォーム モデルを定義し、いくつかのルール メソッドを定義します。電子メール、文字列の長さ、列挙など、多くの検証ルールが付属しています。もちろん、特別なルールを自分で定義することもできます。
繰り返しの送信やマシン シミュレーションの送信を防ぐ最善の方法は、確認コードを追加することです。
フロントエンドのデータが合法であることを確認する方法はありますか、それともバックエンドで簡単に検証できるでしょうか
質問者は、フロントエンドのデータを信頼してはいけないとも言いました。フロントエンドが検証を実行する場合、バックエンドも一貫した検証を実行する必要があります。
リクエストはシミュレーションを通じてバックエンドに送信され、フロントエンドの検証がスキップされる可能性があるため、バックグラウンドを検証する必要があります
フロントエンドによって行われた検証がどれほど優れていたとしても。バックエンドは依然として完全な検証を保証する必要があります。単純に検証することはできません。
データ送信者が一連の検証を通じてデータを送信したことを保証することはできません。
さらに、フロントエンドの検証もユーザーエクスペリエンスの向上とみなすことができます。
したがって、検証を書くときは、フロントエンドに、彼らが書いた検証コードのコピーを求めて、それを変更してください(笑顔)フロントエンド データが合法であることを確認する方法はありますか? 次に、バックエンドが受信するデータが検証済みのフロントエンドからのものであることを確認する必要があります。これを Web 上で行うのは困難です
。