ユーザーの入力からバックスラッシュを削除するにはどうすればよいですか
質問
私はこれにぼやけています:p
function escape($string)
{
$string = stripslashes($string);
if (function_exists('mysql_real_escape_string')) {
return mysql_real_escape_string($string, $this->connection);
} else {
return mysql_escape_string($string);
}
}
$content = '""""""test\'te%%%%st`test_huhu\'_';
echo '<br>output 1 = '.stripslashes($content);
echo '<br>output 2 = '.$db->escape($content);
出力
output 1 = """"""test'te%%%%st`test_huhu'_
output 2 = \"\"\"\"\"\"test\'te%%%%st`test_huhu\'_
作り方 output 2
同じになります output 1
そしてなぜ output 2
そのようになる?
解決
mysql_real_escape_string
すべてを逃れます "
と '
それがあなたがそれらすべてのスラッシュを得る理由です。データをデータベースに配置する前にスラッシュを削除すると、セキュリティにとって非常に悪い攻撃用に開いていますか?
所属していません StackOverflow