セキュリティ上の観点から、mysql関連のセキュリティ問題を防ぐのに十分なPDO準備文ですか?また、私はキャラクターのサーバー側も検証する必要があります。現在、私はpdo準備文とクライアント側のjavascriptフォームのチェックを使用しています(しかし、私はそれを理解するので、javascriptを無効にすることができます)。PDO準備文が十分です
親切よろしく、
クリス
セキュリティ上の観点から、mysql関連のセキュリティ問題を防ぐのに十分なPDO準備文ですか?また、私はキャラクターのサーバー側も検証する必要があります。現在、私はpdo準備文とクライアント側のjavascriptフォームのチェックを使用しています(しかし、私はそれを理解するので、javascriptを無効にすることができます)。PDO準備文が十分です
親切よろしく、
クリス
異なるアプローチを必要とし、それぞれが、ここ3つの懸念は、実際にあります。必要なすべてのフォームパラメータは、それらが許容可能な長さだと、コンテンツの権利の並べ替えを持っていることを、供給されていることを確認すること
データ検証懸念。あなたが信頼できるORMを持っていなければ、あなた自身でこれを行う必要があります。
データエスケープは、SQLインジェクションを避けるようにデータをデータベースに挿入することに関するものです。準備文は、これを守るための素晴らしいツールです。
データ表示は、表示しているコンテンツがスクリプトまたはHTMLとして誤解される可能性のあるXSSの問題を回避することに関係しています。最低でもhtmlspecialchars
を使用する必要があります。
development frameworkを使用すると、これらの3つの問題はすべて解決されることに注意してください。見て分かりやすいのはLaravelです。ドキュメントが徹底していて、これがどのように一緒になるのかを知ることができるからですが、多くの選択肢があります。
データをデータベースに直接渡すことはできますが、ユーザーが送信したデータがかわすと、どうやら無効になるのでしょうか?彼らは数字の代わりに文字を提出するか、電子メールアドレスに無効な文字が含まれている可能性があります。
PHPの組み込みのFiltersを使用すると、サーバー側で検証を強化できます。
これらを使用して、データのサニタイズと検証を行うことができます。
Validation filtersユーザーが提供したデータが有効であることを確認してください。たとえば、電子メールは有効ですか?数字は実際に数字ですか?テキストは特定の正規表現と一致しますか?
Sanitization filtersは、基本的に、特定のデータ型の無効な文字を削除します。つまり、安全でない文字を削除し、無効な電子メール/ URL文字を削除し、数字以外の文字を削除します。
bunch of helper methodsは、単一値、配列、結合配列、および_GET
および_POST
配列をサニタイズおよび検証できます。
まだサーバー側の検証が必要です。 –