1

サーバー側として PHP を使用して ERP システムを開発しています。そのため、Web サイト/システムのセキュリティには細心の注意を払う必要があります。クライアント側の検証にも JavaScript を使用します。したがって、クライアントでJavaScriptが有効になっていることを確認したいのですが、もちろんデータサーバー側も検証しますが、不要なサーバー呼び出しは望ましくありません。主にフォームとクライアントが入力するデータが心配です..そして送信します..では、データを送信するには何を使用すればよいですか?

デフォルトの HTML 送信と JavaScript による検証 (注: クライアントによって JavaScript がオフになっている場合は役に立ちません)

<input type="submit" name="Add Data" />


または、JavaScript を使用してアンカー タグを使用して送信し<a>ます (JavaScript がオフになっている場合、データを送信できないため、これは意味があると思います)。

<a href="#" onclick="document.getElementById("form_id").submit();">Submit</a>

<a>データの送信にタグを使用する場合、悪い点はありますか、それともデフォルトのsubmitボタンを使用する必要がありますか? また<a>、フォーム データの送信に使用すると、JavaScript を使用してデータを検証できますか?

4

3 に答える 3

4

したがって、クライアントでJavaScriptがオンになっていることを確認したい

できません。JavaScriptを使用せずにシステムを破壊するように設計したとしても、誰かがシステムをリバースエンジニアリングして、不正なデータを手動で送信する可能性があります。

もちろん、データサーバー側も検証します

それが解決策です

しかし、私は不必要なサーバー呼び出しを望んでいません

JavaScriptがオフになっている人から、パフォーマンスや負荷の心配を大幅に軽減するためにエラーのある誤った送信を十分に受け取っている場合は、私は帽子をかぶっています。

デフォルトのHTML送信とJavaScriptを使用した検証

はい。JavaScriptをsubmitフォームのイベントにバインドします。

<a href="#"

そうしないでください。

<a>それで、データを送信するためにタグを使用する場合、悪い点はありますか

  • フォームを送信するもののようには見えません
  • スクリーンリーダーのフォームモードでは表示されません
  • JavaScriptが何らかの理由で機能しない場合、サイレントに失敗します

デフォルトの送信ボタンを使用する必要がありますか?

はい!

于 2012-10-17T16:18:47.250 に答える
2

可能な限り、ブラウザのデフォルトを使用してください。送信ボタンを押したまま、検証をsubmitフォームのイベントにバインドします。そうすれば、JavaScriptの有無にかかわらず、フォームは期待どおりに機能します。

于 2012-10-17T16:17:31.237 に答える
0

いいえ、クライアント側の操作を信頼できるまたは安全であると見なすことはできません。意図的に必要な場合は、検証をブロックするだけで、送信に対してJavaScriptを機能させ続けることができます。

あなたの質問に関しては、それは非常に簡単です:ユーザーがJavaScriptなしで送信できるようにするかどうか。これは、何が「より良い」かという問題ではなく、要件の問題です。

于 2012-10-17T16:17:58.950 に答える