2014-05-22 75 views
-1

如何从asp.net页面将JavaScript代码注入另一个域的html页面中,例如http://www.codeproject.com/。如何从我的应用程序注入JavaScript到这个HTML页面将asp.net页面的JavaScript代码注入到另一个域的html页面

我目前正在制作一个插件就像Pinterest一样,当我的应用程序打开html页面时,它会在页面上自动显示一个bookmarklet。

下面是我使用注入的JavaScript代码

public partial class ViewPage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
      string script = "javascript:(function(){var jsdom = document.createElement('script');jsdom.src = 'http://localhost:15064/Script/delete.js';document.body.appendChild(jsdom);})();"; 
      Response.Redirect(Server.UrlEncode(script)); 
    } 
} 

下面是错误,我得到的上述代码的执行

enter image description here

+0

你不能这样做,这是一个安全漏洞(想象脚本“重定向到银行网站,并把所有的钱转移给我”) –

+0

http://www.technicalinfo.net/papers/CSS.html – cracker

回答

0

相同的原始策略不会让你后在别人的域中运行脚本。如果这不存在,任何人都可以在任何域中运行脚本,这将是一个主要的安全风险。

有几个*法律的例外,你可以阅读下面

https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

唯一的其他方法来完成双方的协议之外将违反同一产地和可能的非法。

Xss攻击很常见,并且按照您所描述的操作。

0

你大概就能得到最接近的是一个书签:

http://www.mattcutts.com/blog/javascript-bookmarklet-basics/

这基本上是内联JavaScript的快捷方式。

一个野外的例子是X射线护目镜书签。您可以通过创建一个新的书签和粘贴位置,因为它添加:

javascript:(function(){var script=document.createElement('script');script.src='https://goggles.webmaker.org/en-US/webxray.js';script.className='webxray';script.setAttribute('data-lang','en-US');script.setAttribute('data-baseuri','https://goggles.webmaker.org/en-US');document.body.appendChild(script);})(); 

这不会让你从你的应用程序注入,但它是注入到您的浏览器中的文档的方式。

相关问题