通常我正在使用这样的代码来表单。其中的PHP代码是重新填充表单,例如如果遗漏了某些东西:
<form action="" method="post">
<input type="text" name="first_name" <?php if (isset($_POST['first_name'])) { echo "value=\"".$_POST['first_name']."\"";} ?>><br>
<input type="text" name="last_name" <?php if (isset($_POST['last_name'])) { echo "value=\"".$_POST['last_name']."\"";} ?>><br>
<input type="submit" name="submit">
</form>
一个安全工具告诉我黑客可以操纵我的代码如果填写例如"><p>Hello!!!</p>
然后提交。黑客可以操纵PHP代码还是仅操作HTML?
这是一个很大的安全问题吗?
防止这种情况的最佳方法是什么?仅搜索删除>
和"
等特殊字符就足够了吗?还是有更好,更优雅的方式?
答案 0 :(得分:0)
是的,这是一个严重的问题。这是一次XSS攻击。攻击者可以通过这种方式注入恶意脚本。 https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
为了避免这种攻击,您应该转义HTML标记。这是一个PHP库:http://php.net/manual/en/function.htmlspecialchars.php