2017-06-15 228 views
0

使用ヶ辆()因此,假设我有这样一段代码:我需要在HTML标签属性,以防止XSS攻击

<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> 

在此,我必须写htmlentities在div id属性太?

例如,像这样:

<div class="name" id="<?php echo htmlentities($userId); ?>" >...</div>

而且,做我需要做的是:

<p>Last Activity: <?php echo htmlentities(getTime($datetime)); ?></p>

感谢您的帮助!

P.S.:datetime是我创造

+0

$ userId是用户输入的字段还是来自db的自动编号? – mkaatman

+0

它来自数据库 – meagler

回答

1

功能这取决于用户是否可以操纵这些变量或没有。如果他们可以在他们之前被回显出来,那么你应该清理这些变量(使用htmlentities()以及其他)。如果这些变量是硬编码的,所以用户无法操作它们,那么你很好。

基本上,用户可以在echo $ userID被调用之前以任何方式修改变量$ userID吗?那么,是的,为了安全起见,您应该包括htmlentites以及其他可能的其他内容。

以下是可能有所帮助的link。请务必阅读有关答案的评论。

+0

嘿男人!非常感谢你为这个惊人的答案! – meagler

+0

没问题!乐意效劳! – ottiem