1

私の質問は簡単です。HTML、PHP、および jQuery を使用して、Web サイト用の簡単なログイン/登録フォームを作成しています。

各入力で HTML の必須タグを使用し、PHP を使用してユーザー名の可用性とパスワードの一致を確認できる場合にも、PHP でフォーム検証を記述する必要がありますか?

バックエンドにも検証を行うことは良い習慣だと思いますが、HTML の「必要な」機能がすべてを処理しているように見えますか? これは簡単に誤用される可能性がありますか?単純なフォーム検証のために HTML のみに依存することの一般的な欠点は何ですか?

4

4 に答える 4

3

PHPでもフォームバリデーションを書く必要がありますか

クライアント側の検証の形式に依存することはできません。いつでもバイパスできます。

HTML 5 検証属性をサポートしていないブラウザーを使用しているか、DOM インスペクターを使用してそれらを削除している可能性があります。

JavaScript ソリューションは、JavaScript をオフにすることで簡単に回避できます。

フォームは、ユーザーが所有するページからコピー/貼り付け、編集、送信できます。

HTTP リクエストは、フォームに近づかなくても手動で作成できます。

などなど

クライアント側の検証は、ユーザーの利便性のためにのみ提供できます。システムの保護は、サーバー側でのみ処理できます。

于 2013-04-21T16:28:31.230 に答える
2

フロントエンドの検証に頼るべきではありません。Javascript や HTML もありません。ユーザーは登録フォームを開き、firebug またはその他のツールを使用して、テキスト ボックスを調べ、required属性を削除できます。フロントエンドを開かなくても、バックエンドの POSTed 変数に送信することもできます

于 2013-04-21T16:28:39.223 に答える
2

サーバーでの検証は必須です

ただし、クライアントとサーバーの両方で検証することで、ユーザーが即座にフィードバックを得ることができますが、はい、PHP で検証を行う必要があります。

于 2013-04-21T16:29:03.140 に答える
1

クライアント側の検証はユーザビリティの問題であり、サーバー側の検証はセキュリティの問題であると考えると役立つかもしれません。

ユーザビリティは「あると便利」と表現されるかもしれませんが、セキュリティは間違いなく「必須」です。

于 2013-04-21T16:57:06.870 に答える