有没有办法将内联javascript作为URL执行?

时间:2010-01-29 04:43:24

标签: javascript

在许多浏览器中,您可以执行以下操作:

javascript: alert("...");

有没有办法将它与网址结合起来?我在考虑这样的事情:

http://example.com?javascript: alert("...");

效果是在加载页面后执行javascript(与加载URL然后输入上述javascript语句相同的效果)

编辑:我不能使用window.onload或类似的东西,因为我不一定拥有该页面。

4 个答案:

答案 0 :(得分:9)

不,你不能那样做。如果可能,它会代表安全问题,因为您可以在另一个域的页面上运行任意Javascript,这就是XSS(“跨站点脚本”)的全部内容。

基本上,在新页面上运行的任何Javascript都必须位于新页面上。

编辑:在当前页面和某些任意其他页面上执行Javascript之间的区别很大。在当前页面上,根据定义,您可以访问它,以便您可以运行任何您想要的任何内容。没有固有的安全风险。但是如果你可以在另一个页面上执行任意代码呢?

它允许你这样做:

  • 强迫用户访问银行网站;
  • 在该网站上检索他们的cookie(你可以用JS做到这一点);和
  • 将该用户重定向到恶意网站,将cookie作为查询参数传递。

这就是为什么你不能。

答案 1 :(得分:0)

你为什么不这样做

window.onload = function() {
    alert("...");
};

在新页面中?

答案 2 :(得分:0)

只是为了澄清:

  1. 网址不是链接;它是统一资源定位器。当你要求“页面”时,你会要求一个资源。这就是“http://mysite.com/myscript.cgi”可以成为有效网址的原因。

  2. 超链接(href)可以是当前页面某处的URL或位置(锚点),也可以是某些本地脚本(不一定是Javascript)。

  3. 听起来好像是在尝试将某些操作附加到现有页面。您可以考虑将其框架化(在FRAME或IFRAME中)并将您的脚本放在封闭页面中。

答案 3 :(得分:0)

您可以将其作为书签...而不是网址本身。

查看http://supergenpass.com/

中指定的链接