我正在尝试使我编写的 PHP 应用程序安全并且对转义输出有疑问。一旦我了解到这样做可以防止 SQL 注入,我就切换到使用 PDO 的预准备语句,而且似乎另一种主要的攻击类型是 XSS。我像这样为我的页面构建输出(假设变量中有来自数据库的数据):
$output = '';
$output .= '
<div style="float: left; width: 800px;">
<span>Name:</span><span> ' . $name . '</span>
<span>Address:</span><span>' . $addr . '</span>
<span>Time:</span><span>' . time() . '</span>
</div>';
$output .='[lots more html]';
所以,我的问题是,我是否应该使用htmlentities()
正在输出的数据库中的每条数据(一个典型的页面有几十个,可能有数百个来自正在输出的数据库的变量)?