私はPHPとMySQLを使用して基本的なフォーラムを強化しています。ユーザーがアポストロフィ( ')を使用するか、リンクにリンクを挿入すると、mysql_real_escape_string関数はテキストに\を追加します。投稿を表示すると、リンクが機能せず、すべてのアポストロフィの前に\が付きます。データベースに書き込む前にデータを消去するより良い方法
私はテキストを出力する前に何かしていない、またはMySQLに書き込む前にデータを適切にクリーニングしていないという問題はありますか?
私はPHPとMySQLを使用して基本的なフォーラムを強化しています。ユーザーがアポストロフィ( ')を使用するか、リンクにリンクを挿入すると、mysql_real_escape_string関数はテキストに\を追加します。投稿を表示すると、リンクが機能せず、すべてのアポストロフィの前に\が付きます。データベースに書き込む前にデータを消去するより良い方法
私はテキストを出力する前に何かしていない、またはMySQLに書き込む前にデータを適切にクリーニングしていないという問題はありますか?
マジックコートはオンですか?あなたはそうのようなPHPページを作成することにより、すばやくチェックすることができます。
<?php var_dump(get_magic_quotes_gpc()) ?>
ページはint(1)
ような何かを言うならば、犯人はmysql_real_escape_string
ではなく、PHPそのもの。それはセキュリティ機能でしたが、あまり安全ではなく、たいていちょっと迷惑でした。各変数をサニタイズする前に、まずスラッシングをstripslashesで元に戻す必要があります。
また、これを使ってマジッククオートをオフにすることができます
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
set_magic_quotes_runtime(0);
}
サーバーが5.3.0未満、PHPのいずれかのバージョンを実行しているときには、マジッククオートをオフにします。