如何将来自asp.net页面的JavaScript代码注入另一个域中的html页面,例如http://www.codeproject.com/。如何从我的应用程序中将JavaScript注入到这个html页面
当我从我的应用程序打开html页面时,我正在制作一个像Pinterest一样的插件,它会像页面上的Pinterest一样显示一个书签。
以下是我用来注入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));
}
}
以下是我执行上述代码后得到的错误
答案 0 :(得分:0)
相同的原始策略不允许您在其他人的域中运行脚本。如果这不存在,任何人都可以在任何域中运行脚本,这将是一个主要的安全风险。
此规则有几个*法律例外,您可以在下面阅读
https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy
在双方协议之外完成的唯一其他方式是违反同源并且可能是非法的。
Xss攻击非常常见,并按照您的描述进行操作。
答案 1 :(得分:0)
你可能得到的最接近的是书签:
http://www.mattcutts.com/blog/javascript-bookmarklet-basics/
这基本上是内联javascript的快捷方式。
野外的一个例子是X-Ray Goggles书签。您可以通过创建新书签并将位置粘贴为:
来添加它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);})();
这不会让您从应用程序中注入,但它是一种从浏览器注入文档的方式。