如何在每个_POST上添加addslashes(htmlentities(...))?
if ( isset ( $_POST ) ):
foreach ( $_POST as $name => $val ) :
$_POST[$name] = addslashes(htmlentities($val));
endforeach;
endif;
这会有效吗?
答案 0 :(得分:1)
这会有用吗?
只有在没有像?name[]=tony&name[]=anthony
中那样传递数组时才有效。
你为什么要这样做?如果您这样做是为了保护,您应该只在需要时使用这些功能。
使用mysql_real_escape_string()
(甚至更好PDO)而不是addslashes()
来确保无法进行SQL注入。例如:
// 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));
使用htmlspecialchars()
代替htmlentities()
来阻止XSS。例如:
<input type="text" name="<?php echo htmlspecialchars($name) ?>" />
答案 1 :(得分:0)
你是不是在试着这个问题?据我所知,它应该有效。