2016-04-01 12 views
1

セキュリティ上の観点から、mysql関連のセキュリティ問題を防ぐのに十分なPDO準備文ですか?また、私はキャラクターのサーバー側も検証する必要があります。現在、私はpdo準備文とクライアント側のjavascriptフォームのチェックを使用しています(しかし、私はそれを理解するので、javascriptを無効にすることができます)。PDO準備文が十分です

親切よろしく、

クリス

+1

まだサーバー側の検証が必要です。 –

答えて

0

異なるアプローチを必要とし、それぞれが、ここ3つの懸念は、実際にあります。必要なすべてのフォームパラメータは、それらが許容可能な長さだと、コンテンツの権利の並べ替えを持っていることを、供給されていることを確認すること

データ検証懸念。あなたが信頼できるORMを持っていなければ、あなた自身でこれを行う必要があります。

データエスケープは、SQLインジェクションを避けるようにデータをデータベースに挿入することに関するものです。準備文は、これを守るための素晴らしいツールです。

データ表示は、表示しているコンテンツがスクリプトまたはHTMLとして誤解される可能性のあるXSSの問題を回避することに関係しています。最低でもhtmlspecialcharsを使用する必要があります。

development frameworkを使用すると、これらの3つの問題はすべて解決されることに注意してください。見て分かりやすいのはLaravelです。ドキュメントが徹底していて、これがどのように一緒になるのかを知ることができるからですが、多くの選択肢があります。

0

データをデータベースに直接渡すことはできますが、ユーザーが送信したデータがかわすと、どうやら無効になるのでしょうか?彼らは数字の代わりに文字を提出するか、電子メールアドレスに無効な文字が含まれている可能性があります。

PHPの組み込みのFiltersを使用すると、サーバー側で検証を強化できます。

これらを使用して、データのサニタイズと検証を行うことができます。

Validation filtersユーザーが提供したデータが有効であることを確認してください。たとえば、電子メールは有効ですか?数字は実際に数字ですか?テキストは特定の正規表現と一致しますか?

Sanitization filtersは、基本的に、特定のデータ型の無効な文字を削除します。つまり、安全でない文字を削除し、無効な電子メール/ URL文字を削除し、数字以外の文字を削除します。

bunch of helper methodsは、単一値、配列、結合配列、および_GETおよび_POST配列をサニタイズおよび検証できます。

Nettutsには、herehereの問題に関するチュートリアルがあります。