0

ユーザーがフォームに入力したデータを検証したい。ユーザー名とパスワード用の 2 つのフィールドしかありません。私の最初の質問は、javascript でデータをチェックして正常に動作することですが、javascript が機能しない場合に備えて、php でもデータをチェックしたいと考えています。JavaScriptが機能していない場合、データはphpコードからチェックされますが、私の問題は、javascriptが機能している場合、データがjavascriptとphpからもチェックされることです。これでいいですか?入力データをjavascriptでチェックする際、phpでチェックしないようにする方法はありますか? また、入力(ユーザー名とパスワード)の文字数、文字数(特殊文字は許可せず、「_」、「。」のみ)をチェックしています。SQL インジェクションを避けるために数字と文字を使用します) - どのように聞こえますか? より良い検証のための他の提案はありますか?

前もって感謝します。

4

5 に答える 5

2

ユーザー入力のサーバー側(php)検証を常に行う必要があります。クライアント側 (javascript) の検証は、ユーザー エクスペリエンスの向上にのみ役立ちます。また、mysql インジェクションを防ぐために、入力を一部の文字に制限しないでください。これには、他の信頼できる方法があります。

于 2012-04-17T21:37:42.280 に答える
2

はい、クライアント側 (JS) とサーバー側 (PHP) の両方を検証する必要があります。

ユーザーの利便性とユーザー エクスペリエンスの向上のために、クライアントでこれを行います。

悪意のある攻撃を防ぐために、またはあなたが述べたように、ユーザーがJSを無効にしている場合に備えて、サーバーでそうしてください。

于 2012-04-17T21:38:12.857 に答える
2

常にサーバー側の検証を実行する必要があります。クライアント側の検証 (JavaScript 検証など) が無効にならないという保証はありません。デバッグ ツール (最近はブラウザーに組み込まれているものはどれでも) を取得して、JavaScript の検証を回避するのは簡単な作業です。

通常は何も問題はなく、Javascript と PHP の両方で検証を行うことをお勧めします。

于 2012-04-17T21:38:27.120 に答える
1

両方の方法をチェックすることは問題なく、間違いなく推奨されます。Javascript が有効かどうかを PHP で確認したくない場合は、非表示フィールドをフォームに追加して、PHP でこれを確認することができます。

例えば

if(!isset($_POST['js_hidden_field'])) {

    // Run Validation 

}

非表示フィールドを確認し、設定されていない場合は PHP Validation を実行します。

于 2012-04-17T21:38:00.647 に答える
1

これは実際には良いことです。私の意見では、あまり多くの検証を行うことはできません。クライアント サイド スクリプトは Web 開発の経験があれば誰でも操作できますが、サーバー サイド スクリプトは操作できません。

クライアント側のスクリプト検証の長所:

  • データを送信する前にユーザーに警告し、ユーザーが自分で修正できるようにします
  • あなたのサイトをもう少し洗練されたものにします

サーバー側の検証の長所:

  • 誰もあなたが持っている検証ルールを変更することはできません
  • サーバー側の検証をオフにすることはできません。

要するに、両方を行うことは良いことです。実際には、どちらか一方を行うよりも優れています。

于 2012-04-17T21:39:48.053 に答える