2012-01-05 23 views
0

私はjavascriptを使って小さなアプリを作りました。私はフォームの検証のためのjavascriptを使用していますが、これは私のmysqlデータベースに非クリーンなデータを渡す人々に対して私を保護する場合は、 "スクリプトなしの"タグを使用しているのだろうか?私はそれがオフになっている人にアプリケーションへのアクセスを拒否する。これは安全な方法ですか、またjsバリデーションの上でPHPフォームの検証をする必要がありますか?スクリプトタグがありません - 信頼できますか?安全ですか?

もしそうでなければ、私のdbに送信されたデータが有害ではなく、きれいでないことを保証する最良の方法は誰か助言できますか?私は可能な場合はjavasciptを使ってこれをやりたいのですが、PHPでレイヤ化するのではなく、私のアプリが安全である限り私はしなければなりません。

私はhtmlentitiesのようないくつかのPHPクリーニングを行う必要がありますが、PHPでフォーム検証をしたくないと知っています。

ありがとうございました。

+1

PHPでフォームの検証をしないようにしたいのですが? –

答えて

6

いいえ、クライアント側が検証することは決して信頼できません。常にサーバー側を検証する必要があります。クライアント側の検証はユーザーエクスペリエンスを向上させることができますが、セキュリティ上のメリットはありません。

+0

私はちょっと怠け者だと思っていました。ありがとうございました。 – user982853

1

いいえ、サーバー側の検証を行う必要があります。たとえそれがオンになっていても、JSを変更することができます(たとえば、Chromeではスクリプトの読み込みを一時停止してJSを編集してから実行することができます)。

1

Javascriptの保護は、単に「視覚的」である(底部に向かって検証例です)http://net.tutsplus.com/tutorials/html-css-techniques/build-a-neat-html5-powered-contact-form/

これは良い出発点です。誰もがそれをバイパスし、彼/彼女が望むデータを挿入することができます。
ユーザーが送信したデータは常にサーバー側で検証する必要があります。 基本的には、mysql注入を防ぐためにmysql_real_escape_string()を使い始めることができます。また、入力されたデータを表示する場合にはタグをいくつか削除します。

2

一般的に、データを検証するためにクライアント側のコード(この場合はjavascript)に頼ることは決してありません。クライアントはあなたがjavascriptに入れるものを完全に制御するので、バイパスするのはかなり簡単です。何が起きているのかを完全に制御できるサーバーで常に検証します。

関連する問題