JavaScriptが必要なときにサーバー側の検証が失敗した場合は、エラーを表示しないでください。

私たちは、JavaScriptが機能するために絶対に必要なフォームを持っており、検証はクライアント側で行われます。検証もサーバー側で実行されますが、サーバー側の検証が失敗した場合にエラーを表示するには非常に手間がかかります。

Since there is no chance for the user to not have JavaScript, is it OK to just fail with an HTTP error? The only way they would fail server side verification was if they either are a malicious user, or can't use JavaScript, in which case they wouldn't be using the form anyway.

Thanks

1

4 答え

私はこれがうまくいけば、特定の種類のエラーについて除外していると言います。

いくつかの検証エラーは悪意のある結果ではありませんが、フォームが実際に処理された時以外のときには確認および発見できません。これは予約されている必要があるリソースが不足している(「このユーザー名は既に使用されています」)か、サーバー側で回復可能なエラーがあるためです(「アップストリームのクレジットカードプロセッサーが応答しません。後")。このようなエラーの場合、何らかのエラーメッセージがユーザーに伝えられるはずです。このような種類のエラーを送信することは不可能な設計を想像するのは難しいです。少なくともあなたはこれを行うことができます:

  1. HTTPエラー応答を送信します(エラーの性質に応じて4xxまたは5xx)。
  2. レスポンスの本文に、javascriptで簡単に理解できるデータ構造にエラーメッセージをパッケージ化します。 (JSONまたはXML、またはテキスト/プレーンさえも!)MIMEタイプを設定することを忘れないでください。
  3. javascriptリクエストのエラーハンドラにフォームの目に見える場所(例:送信ボタンの上部または送信ボタン)にエラーのテキストを挿入します。

しかし、最も重要なことは、サーバー側の検証を行い、クライアントを信頼しないことです。あなたはすでにこれをやっているので、それ以上のことをしたいのであれば、それは最善のユーザーエクスペリエンスを目指すためのものです。時には、それは不必要な努力を必要とし、それは大丈夫です。

2
追加された

クライアント側の検証とサーバー側の検証が同等であることが確実である限り、問題ありません。このノートでは、クライアント側の検証コードとサーバー側の検証コードを同期させておくことが面倒です(特に、それらが異なる言語で書かれている場合は、node.jsやGWtを使用していない場合は常にそうです) )。誰かがそれが素晴らしいだろう何か解決策がある場合。

ただし、サーバー側(データベースの一意性制約など)でのみ実行できる特定の検証がある場合は、クライアント側の操作が失敗したことをユーザーに示すことが重要です。それはアプリケーション自体にも依存します。

0
追加された

私は個人的にはそれが良いと思う。

特に、サイトを使用する前のステップでもJavascriptがなくてもまったく動作しない場合、ユーザーはJavascriptなしで問題のページに進むことができなかったので、Javascriptなしで動作させるという膨大な費用に浪費します。たとえば、.Netウェブフォームでは、ログインするにはJavascriptが必要です。そのため、サイトのセキュリティ保護された領域内のどのページでも、Javascriptが利用可能であると想定することができます。

私は他の人が何を考えているのか不思議です。

0
追加された

誰かがブラウザをバイパスしたときにHTTPリクエストに失敗する唯一の使用例がある場合、httpリクエストに失敗しただけで完璧にうまくいくようです。予想されるユーザーシナリオには影響しませんが、サーバー側の検証でサーバー側の整合性を保護しています。それ以上の仕事をしても意味がありません。私にはうまく見えます。

サーバーからエラーUIを表示するためにもっと多くの作業を行う価値があるのは、悪いデータがサーバーに届く実際の正当なユーザーシナリオがある場合です。しかし、正当なシナリオがそこに行くことはありそうもないとは思えないので、余分な仕事をする理由はありません。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript