哪一段代码“更好?”

时间:2017-02-05 19:39:28

标签: php twitter-bootstrap security contact-form htmlspecialchars

我有两段代码。你能告诉我哪一个更正确,更安全吗?

<input type="text" class="form-control contact__form-control"    placeholder="Your Name *" id="name" value="<?php echo htmlspecialchars ($name); ?>">
<?php echo "<span class='text-danger'>$nameError</span>";?>

<input type="text" class="form-control contact__form-control" placeholder="Your Name *" id="name" value="<?php echo htmlspecialchars ($name); ?>">
<?php echo htmlspecialchars ("<span class='text- danger'>$nameError</span>");?>

我已经看到每个人都使用第一个,但我在PHP中读到这个,当你为了安全原因添加htmlspecialchars而回应它的好处。所以我想知道第二段代码是否正确。引导警报类是否可以在htmlspecialchars

之后工作

1 个答案:

答案 0 :(得分:1)

当您需要在HTML页面上输出纯文本时,您应该对其进行HTML转义,否则HTML标记将被解释为HTML。

即使某些文本不应包含HTML标记,即用户名,如果它是来自用户的输入,也可伪造成包含危险的HTML标记,因此出于安全原因,您可以将HTML转义为无论如何

但只是逃避文本,不要逃避围绕它的标签。

<span class='text-danger'><?php echo htmlspecialchars($nameError); ?></span>

或者,您可以在脚本开头清理用户输入;例如从用户名中删除所有非字母数字字符。那么你将不再需要HTML-escape了。