-2

関数を mysql から mysqli に変換しています。mysql では、データを解析して SQL の脅威を取り除くことができる一般的な関数を使用します。私は mysqli でこのメソッドを使用しようとしましたが、それを通過したデータは戻ってきません。文字列をvar_dumpすると、結果が得られます

string(0) ""

これが私の機能です

function sanitize($data) { 
return htmlentities(strip_tags(mysqli_real_escape_string($data))); 
} 
4

2 に答える 2

0

を使用する必要はありませんmyslqi_real_escape_string()

代わりに、準備されたステートメントを使用するだけで (この PHP ドキュメント ページで例を探してください)、問題ありません。

不良データから保護することに加えて、準備済みステートメントは、特に繰り返しデータに対してより高速に動作する可能性があります。

于 2013-04-03T10:27:48.200 に答える
-1

これが私の機能です

PHP からの出力のサニタイズは、データが送信される媒体に適している必要があります。したがって、DBMS に送信されるデータには mysql[i]_real_escape_string() を使用し、html または xml に送信されるコンテンツには htmlentities を使用し、URL に送信されるデータには urlencode を使用し、電子メールのテキスト コンテンツには quoted_printable_encode を使用する必要があります。

stip_tags は、HTML をプレーン テキストに変換します。add_slashes 関数は、宛先をエスケープするための明示的な方法がない場合にのみ使用してください。

混ぜ合わせることによって、セキュリティ目標を深刻に損なうことになります。

DBMS に入れるデータを準備するには、mysql[i]_real_escape_string() を使用します。strip_tags() で既に処理された文字列に適用しても、悪影響はありません (ただし、逆の方法で適用すると、BREAK が発生します)。

htmlentities を使用して、ブラウザに送信する前にコンテンツをエスケープします。

于 2013-04-03T12:50:03.013 に答える