Nat*_*ate 5 php mysql security xss
我正在尝试使我编写的 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]';
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,我是否应该使用htmlentities()
正在输出的数据库中的每条数据(典型的页面有数十个,可能有数百个来自正在输出的数据库的变量)?
使用有两个好处htmlentities()
:
©
. 在 HTML 内容中,您应该使用适当的 HTML 实体,而不是插入原始特殊字符。为了防止 XSS,您可以使用htmlspecialchars()
它,但它只会将一些基本字符转换为 HTML 实体,即引号、与号和小于/大于字符。
为了回答您的问题,您应该htmlentities()
在输出可能包含用户输入或特殊字符的任何内容时使用。
归档时间: |
|
查看次数: |
4506 次 |
最近记录: |