フロントエンド検証は何に役立ちますか?ユーザーはブラウザを通じてフォームの非表示フィールドの値を変更して送信できますか?
図に示すように、ユーザーはブラウザを通じてフォームの値を簡単に変更し、非表示のブロックを表示できます。 。 。
フロントエンドは、渡されたさまざまな値に基づいて異なるフォーム項目を表示したり、隠しフィールドを使用していくつかのキー値を記録したりすることがあります (たとえば、情報を変更する場合、隠しフィールドには情報の ID が記録されます。送信後、この ID に基づいてデータを更新します) など
。ただし、ユーザーがこれらの値を変更して送信すると、その値は記録されません。何か問題がありますか?
データを提出した後、更新する前に非常に厳密な判断が必要ですか?
追記: ユーザーはフロントエンド HTMLJSCSS を表示することしかできないと常々思っていましたが、直接変更もできるとは予想していませんでした。 ?
------ソリューションのアイデア----------------------
隠しフィールドを使用して一部を変更することもできます値を変更しましたが、変更が正しいかどうかを確認します。
受信データを盲目的に信頼することはセキュリティ上のタブーです
隠しフィールドの値は検証の便宜のためのみです
-----ソリューションのアイデア---- ------------------
もちろん、フロントエンドのJS判定を変更したり、HTMLフォーム情報を変更したりしても、バックグラウンドを使用します。バックグラウンドでスクリプトが再度判断されます。前のセクションの作業はすべて、悪者を防ぐためのものであり、より良いユーザー エクスペリエンスを提供するために、実際にはデータベースに渡すべきではありません。フロントエンドが判断を行った後も、データベースに保存する前に判断を行う必要があります。