2

フォームがある場合は、名前、電子メール、メッセージなどの入力を含む単純な連絡フォームを言います。また、JavaScript検証がすべての入力でtrueを返した後、Ajaxを使用して送信するようにフォームを設定します。

PHPを使用して入力を検証する必要がありますか?JavaScriptがオフになっている場合でも、フォームを送信するにはどうすればよいですか?また、JavaScriptがオフになっているためにフォームを送信できない場合、どのように害を及ぼす可能性がありますか?

4

5 に答える 5

4

もちろん、サーバー側の検証が必要です!:-)

それは常に必要です。

このアドオンをインストールするだけです: https://addons.mozilla.org/en-US/firefox/addon/tamper-data/ .

サーバーに送信する内容を自由に変更できます。

また、Firebugを使用すると、ブラウザーで表示される内容を変更できるため、サーバーに送信されます。

例えるなら、銀行は金庫に鍵をかけています。しかし、ロックが誰かが盗むのを止められなかった場合に備えて、防犯カメラと警報システムも備えています.

編集:

連絡先フォームを使用している (そしてスクリプトが連絡先に自動的に電子メールを送信する) 場合、電子メール フィールドにアドレスを追加するだけで、誰かがあなたのスクリプトに何千ものスパム メッセージを送信させる可能性があることに注意してください。

これを回避するには、サーバー側の検証を行う必要があります。クライアント側の検証に頼ることはできません。

于 2012-07-23T08:52:14.400 に答える
2

フロントエンド検証の有無にかかわらず、常にバックエンド検証を使用してユーザー入力をサニタイズする必要があります。

Javascript を無効にするとフォームを送信できないことは間違いありませんが、使用している URL に POST 要求を送信するだけで、悪意のある人物によって送信される可能性があります。

于 2012-07-23T08:52:34.120 に答える
2

毎回、クライアント側 (JavaScript を使用するため、ブラウザーへの Ajax 呼び出しは行われません) とサーバー側 (PHP 検証を使用) の両方の検証タイプを使用する方がよいと思います。

フォームは、Firebug コンソールまたはその他の種類のハックを使用して送信できます。

通常のユーザーはそれを行うことはできませんが...それでも。それができる可能性がある場合は、リスクを冒すべきではありません。

于 2012-07-23T08:51:23.070 に答える
2

エンドユーザーは JavaScript をオン/オフするだけでなく、それ以上のことができるので、サーバー側で検証を行うことをお勧めします。

JavaScript はクライアント側で使用できるため、悪意のあるユーザーはクライアント側の検証を変更して、悪意のある入力をクライアント側の検証に渡すことができます。

ユーザーが JavaScript の動作を変更しないと信頼するよりも、サーバー側で検証された入力を信頼する方が常に優れています。

于 2012-07-23T08:51:38.530 に答える
1

誰でも任意のデータを含むフォームを URL に送信できます。ローカルホストからでも

したがって、サーバー側の検証は必須です

于 2012-07-23T09:04:01.720 に答える