2011-10-20 12 views
2

私はJqueryの偉大なファンであり、それが出て以来検証していますが、私はユーザがそれをバイパスする方法を見つけるかもしれないと思っています。私はいつもフィールド検証の徹底的な仕事をしています。しかし、誰かが、私が反対してプログラムを検証することを迂回する特定の方法を知っていますか?Jquery Validateをバイパスできますか?

+1

クライアントサイド検証は、JavaScriptをオフにするだけでバイパスできます。サーバーに不正なデータが保存されていないことを確認したい場合は、サーバー側のデータを確認してください。 – Jasper

+0

JSを完全に無効にするのは良い方法ですが、それに対して_program_することはできません。あなたは '

+0

私たちが仕事でやったことは、検証の成功後にフォームの動作にJavaScriptを埋め込むことです。ボットが一般的にフォームを送信しないようにします。最近、ユーザーが無効にしたことは非常にまれです。より安全な環境では、CookieやActiveXなど、ユーザーが無効にしている機能があります。重要なことは:あなたの聴衆を知っている。 – agmcleod

答えて

4

JavaScriptの検証をバイパスする最も簡単な方法は、ブラウザのJavaScriptをオフにすることです。

検証側のサーバー側は「余分な」ものではなく、検証の基礎となるべきであり、クライアント側の検証が「余分な」部分であることに注意してください。

+0

また、フォームの '.validate()'ルールがフォームフィールドの名前を参照していた場合、Devツールのフィールドの 'name'属性を変更し、submitを実行してそのルールをバイパスすることもできます。 – SpyderScript

2

しかし、誰かが私がプログラムに対して妥当性を確認する特定の方法を知っていますか?

誰か(プログラミングのバックグラウンドを持っている人)は、HTTPリクエストを偽造して、JavaScriptの検証を簡単にバイパスすることができます。このため、サーバー上のデータを完全に検証する必要があります。あなたは決してjavascript検証に頼るべきではありません。 bypasにも簡単な方法があります:ブラウザでjavascriptを無効にすると、あなたが望むものをサーバーに送ることができます。 javascriptの検証は、ユーザーエクスペリエンスを向上させ、帯域幅を節約するためにのみ使用しますが、サーバー上で有効なデータを保証するものではありません。つまり、サーバとなる検証を実行する場所が1つあれば。

+0

これに追加するだけで、検証をスキップすることはそれより簡単です。人々はまったく一緒にJavaScriptを無効にすることがあるので、アクション属性が整列すれば、意図せずに検証をスキップします。 –

0

クライアントサイド検証の大きな問題は、オプション "Javascriptなし"です。 Javascriptを無効にするだけで、すべての検証関数が何かを検証します。 Clientside検証は、ユーザーがフォームをサーバーに一度以上送信しないようにするためのものではありません。

サーバー上のすべてのフォームをチェックする必要があります。そうしないと、不完全なフォームで問題が発生しています。

+0

ありがとうございました。私の疑惑のようなものは正しいと思いますし、堅牢なサーバーサイドの評価が必要です。 –

関連する問題