我有两段代码。你能告诉我哪一个更正确,更安全吗?
<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
之后工作答案 0 :(得分:1)
当您需要在HTML页面上输出纯文本时,您应该对其进行HTML转义,否则HTML标记将被解释为HTML。
即使某些文本不应包含HTML标记,即用户名,如果它是来自用户的输入,也可伪造成包含危险的HTML标记,因此出于安全原因,您可以将HTML转义为无论如何
但只是逃避文本,不要逃避围绕它的标签。
<span class='text-danger'><?php echo htmlspecialchars($nameError); ?></span>
或者,您可以在脚本开头清理用户输入;例如从用户名中删除所有非字母数字字符。那么你将不再需要HTML-escape了。