通过JS创建链接时,它的href可以被JS注入吗?

时间:2018-03-13 07:21:20

标签: javascript

我知道专业人士这可能听起来很愚蠢。但是我最近担心所有可能的html和js注射......

所以情况是,我提交了一个URL。使用JS我从框中提取URL,然后动态创建链接元素并将其放在框的正下方。这种情况可以注射吗?有人可以使用可导致损害的JavaScript注入该URL吗?或者这个过程是否以某种方式对链接URL进行了细化?我正在处理我的mp3 converter,这对于显示网址链接非常重要...

var link = document.createElement('a');
link.href = url;
somediv.appendChild(link);

如果提交的网址类似于'>">); - >提醒(/ GGG /)

,这可能会很危险

2 个答案:

答案 0 :(得分:0)

网址是用户输入,应验证所有用户输入。如果您可以确保传入的值是有效的URL而不是其他任何内容,则可以将其写入href属性。

但你必须考虑其他限制,什么是有效的网址,什么不是。您可能不希望链接到您自己的网站或某些恶意URL。

答案 1 :(得分:0)

我认为你在这里注意JavaScript是安全的。但我猜你不安全!你需要验证。

“url”变量是一个字符串变量,所以如果它有JavaScript,它将不会执行,直到现在你都是安全的。此外,当您将其值分配给“link.href”时,不应该导致任何JavaScript执行。但是当有人点击链接时......可以执行!!

尝试在html页面中添加此链接,然后尝试在不同的浏览器中单击它!

<a href="javascript:{alert('oops !');}">Go to my website</a>

它确实在chrome和firefox上执行了!