是否有必要将用户提交的数据转义为 HTML 输入值?
Is it necessary to escape user submitted data being put into HTML input value?
假设您从用户输入中获取一个字符串并将其存储到数据库中。稍后您检索该字符串并使用该字符串填充新表单输入的值。如果没有任何清理,是否存在任何 XSS 危险,如果有,对原始输入的破坏最小的最佳方法是什么。
$str = $_POST['string'];
// INSERT $str INTO MYSQL
// LATER
$string = // database fetched string
<input type="text" name="data" value="<?= $string ?>" /> // << XSS vulnerable?
如果 $string
是:
foo"/><script type="javascript">...something malicious...</script>
这是一个 XSS 漏洞。
用常用的XSS防护方法修复:htmlspecialchars()
另见 How to prevent XSS with HTML/PHP?
假设您从用户输入中获取一个字符串并将其存储到数据库中。稍后您检索该字符串并使用该字符串填充新表单输入的值。如果没有任何清理,是否存在任何 XSS 危险,如果有,对原始输入的破坏最小的最佳方法是什么。
$str = $_POST['string'];
// INSERT $str INTO MYSQL
// LATER
$string = // database fetched string
<input type="text" name="data" value="<?= $string ?>" /> // << XSS vulnerable?
如果 $string
是:
foo"/><script type="javascript">...something malicious...</script>
这是一个 XSS 漏洞。
用常用的XSS防护方法修复:htmlspecialchars()
另见 How to prevent XSS with HTML/PHP?