各_POSTにaddslashes(htmlentities(...))を配置するにはどうすればよいですか?
if ( isset ( $_POST ) ):
foreach ( $_POST as $name => $val ) :
$_POST[$name] = addslashes(htmlentities($val));
endforeach;
endif;
これは機能しますか?
各_POSTにaddslashes(htmlentities(...))を配置するにはどうすればよいですか?
if ( isset ( $_POST ) ):
foreach ( $_POST as $name => $val ) :
$_POST[$name] = addslashes(htmlentities($val));
endforeach;
endif;
これは機能しますか?
これは機能しますか?
のように配列が渡されない場合にのみ機能し?name[]=tony&name[]=anthony
ます。
そして、なぜあなたはそれをしますか?保護のためにこれを行う場合は、必要な場合にのみこれらの機能を使用する必要があります。
SQLインジェクションが不可能であることを確認する代わりにmysql_real_escape_string()
(またはさらに優れたPDO )を使用してください。addslashes()
例:
// using mysql_real_escape_string
$sql = "SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "'";
// using PDO (recommended)
$statement = $pdo->prepare("SELECT * FROM user WHERE name = ?");
$statement->execute(array($name));
XSSを防ぐためhtmlspecialchars()
に代わりに使用してください。htmlentities()
例:
<input type="text" name="<?php echo htmlspecialchars($name) ?>" />
あなたは試さずにこれを求めていますか?私が見る限り、それはうまくいくはずです。