我想知道在安全性和实用性方面什么是正确的程序。在检查变量是否已设置且为空之前,是否应该对变量使用 htmlspecialchars() ?
示例:
使用 htmlspecialchars() 来使用或存储发布数据:
$field = $_POST['field'];
if(isset($field)){
//store or use: htmlspecialchars($field);
}
或者您应该使用 htmlspecialchars() 来检索帖子数据:
$field = htmlspecialchars($_POST['field']);
if(isset($field)){
//store or use: $field
}
这可能是一个愚蠢的问题,但我想知道哪个是正确的。
最佳答案
嗯,这样想吧。我们为什么首先使用 isset
?答案是保护我们的代码不尝试用不存在的东西做事。
例如,在控制台中使用php -a
,您可以看到:
php > $temp
php > echo htmlspecialchars($temp);
Parse error: parse error in php shell code on line 2
php >
显然您不希望代码抛出解析错误。因此,您需要首先检查该值是否存在(使用 isset
),然后使用该值执行操作。
关于php - 应该在 isset() 和empty() 之前还是之后使用 htmlspecialchars() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35449467/