2014-05-22 107 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);})(); 

這不會讓你從你的應用程序注入,但它是注入到您的瀏覽器中的文檔的方式。

相關問題