是否有<a> tag that fires when the page loads?</a>的事件处理程序

时间:2013-06-16 18:26:21

标签: javascript html xss

<body onload="alert(1)"></body>
当页面加载时,

会提醒数字1。是否有这样的事件处理程序

<body>
  <a ???="alert(1)"></a>
</body>
页面加载后,

还会提示1吗? 这是一个XSS问题。我想确保你不能从<a>标签执行javascript,因为我想从php中回显一些输出:

echo "<a href='" . $user_input . "' ></a>";

这很容易受到XSS的攻击,但只有当用户点击或悬停在链接上时才会受到影响。如果用户提供此输入:

$user_input = "' onclick='alert(1);"

然后标签看起来像这样:

<a href='' onclick='alert(1)'></a>

2 个答案:

答案 0 :(得分:4)

当然,如果变量包含例如'></a><script>alert(1);</script>,则可能。 所以你无论如何都需要消毒它的价值。

答案 1 :(得分:1)

不,你不能。使其工作的最简单方法是将函数调用直接放在元素

之后
<body>
    <a></a>
    <script>alert(1)</script>
</bodY>