我是否需要在 html 标签属性中使用 htmlentities() 来防止 XSS 攻击
Do I need to use htmlentities() in html tag attributes to prevent XSS attacks
所以假设我有这段代码:
<div class="name" id="<?php echo $userId; ?>">
<p>User Name: <?php echo $username; ?></p>
<p>Last Activity: <?php echo getTime($datetime); ?></p>
<p>Date: <?php echo $date; ?></p>
</div>
这个,我是不是也要在divid属性里面写htmlentities
?
例如,像这样:
<div class="name" id="<?php echo htmlentities($userId); ?>" >...</div>
另外,我需要这样做吗:
<p>Last Activity: <?php echo htmlentities(getTime($datetime)); ?></p>
感谢您的帮助!
P.S.:datetime 是我创建的函数
这取决于用户是否可以操纵这些变量。如果他们可以在他们被回显之前,那么你应该清理这些变量(也使用 htmlentities() 和其他变量)。如果这些变量是硬编码的,所以用户无法操纵它们,那么你就没事了。
基本上,用户可以在调用 echo $userID 之前以任何方式更改变量 $userID 吗?然后,是的,出于安全目的,您应该包括 htmlentites 和其他一些东西。
这里有一个 link 可能会有帮助。一定要阅读评论以获得答案。
所以假设我有这段代码:
<div class="name" id="<?php echo $userId; ?>">
<p>User Name: <?php echo $username; ?></p>
<p>Last Activity: <?php echo getTime($datetime); ?></p>
<p>Date: <?php echo $date; ?></p>
</div>
这个,我是不是也要在divid属性里面写htmlentities
?
例如,像这样:
<div class="name" id="<?php echo htmlentities($userId); ?>" >...</div>
另外,我需要这样做吗:
<p>Last Activity: <?php echo htmlentities(getTime($datetime)); ?></p>
感谢您的帮助!
P.S.:datetime 是我创建的函数
这取决于用户是否可以操纵这些变量。如果他们可以在他们被回显之前,那么你应该清理这些变量(也使用 htmlentities() 和其他变量)。如果这些变量是硬编码的,所以用户无法操纵它们,那么你就没事了。
基本上,用户可以在调用 echo $userID 之前以任何方式更改变量 $userID 吗?然后,是的,出于安全目的,您应该包括 htmlentites 和其他一些东西。
这里有一个 link 可能会有帮助。一定要阅读评论以获得答案。