我不得不在旧开发人员离开的旧Web应用程序上工作。它使用addslashes()来阻止HTTML属性上的XSS。addslashes()是否安全以阻止HTML属性中的XSS?
下面是一个例子:
<?php
// all $_POST vars are put through addslashes()
echo "<input type='hidden' value='" . $_POST['id'] . "' />";
?>
这是容易被XSS?有没有什么方法的JavaScript可以运行在一个值属性,就像它可以在src属性中,例如,src ='javascript:alert(99)'。或者可以将value属性分解出来,然后插入脚本标记?
编辑:感谢昆汀,我认为它是脆弱的。
使用双引号或单引号不会突破,它只是逃脱。它真的很容易受到XSS? – MrCode
@ user995579 - 它不会被转义。它之前只有一个斜线。这没有任何意义,然后把它放在HTML之前。 – Quentin
是的,它在它之前放了一个斜线。这是保持所有用户输入的值属性,所以我不认为它可以被打破。 – MrCode