2

通常我在表单中使用这样的代码。其中的 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?

这是一个很大的安全问题吗?

防止这种情况的最佳方法是什么?>仅搜索删除特殊字符(如and )就足够了"吗?还是有更好、更优雅的方式?

4

1 回答 1

0

是的,这是一个严重的问题。这是一种 XSS 攻击。攻击者可以通过这种方式注入恶意脚本。https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

为了避免这种攻击,您应该转义 HTML 标签。这是一个 PHP 库:http: //php.net/manual/en/function.htmlspecialchars.php

于 2017-02-02T14:58:07.430 回答