簡體   English   中英

允許IE交互觸發客戶端執行本地代碼

[英]Allow IE interaction to trigger execution of local code client-side

我想允許在可信網頁上進行交互以觸發客戶端上的代碼執行。 用戶將使用IE作為Web瀏覽器。 要執行的代碼文件將在客戶端上可用。 網頁將知道本地代碼文件的方法界面。 例如,這可以用於將瀏覽器中的數據保存到客戶端上的預定義文件或本地代碼文件中定義的任何其他操作。

所有其他代碼將使用c#和aspx編寫。

什么是正確的方法(或簡單的方法?)來執行此操作?

除非您希望深入研究ActiveX,否則我擔心IE不會提供任何其他接口來操縱系統中的基礎層。

對於客戶來說絕對不安全。

這被視為黑客攻擊(使用瀏覽器在客戶端計算機上寫入數據)。 無論用戶是否信任您,無論您使用C#,JavaScript還是任何其他技術,都不可能(除了非法使用漏洞利用之外)來進行此操作。

只是假設有可能。 您可以寫入c:/windows/並銷毀用戶的系統。 即使您不打算並向世界承諾您做對了,如果可能的話,其他人也可以這樣做,但他們卻不那么值得信賴。 考慮到犯罪組織對IE進行的主動利用泄漏量很大,這不是您應該想要的。

也就是說:要獲得完全的信任並能夠做任何事,可以通過以下方法之一來完成:

  1. 為瀏覽器編寫擴展程序或插件。
  2. 編寫需要完全信任的ActiveX控件。
  3. 編寫用戶必須安裝的應用程序。
  4. 使用完全信任的VBScript或JScript,然后從腳本中打開並使用FileSystemObject

這些都給您充分的自由。 由於明顯的原因,選項3是最常見的。 所有這些都需要用戶的許可(他們將彈出一個窗口,並且必須單擊一次或多次)。

選項4的示例如下(請注意,放棄使用C#的想法,這僅是服務器端的,不能在瀏覽器中使用):

// this is JScript and works within <script> in IE only
function CreateSomeFile()
{
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var myFile = fso.CreateTextFile("c:\\somefile.txt", true);
    myFile.Writeline("this is Hello World from Outer Space");
    myFile.Close();
}

更新: 添加了代碼示例

不能確切告訴你。 首先,我想到的是開發瀏覽器插件或Google Gears。

我認為Google Gears允許通過瀏覽器本地創建和訪問文件。

對Intranet應用程序執行此操作的一種簡單方法是編寫實現URL方案的IE擴展(例如myapp:// blahblahblah),並將其安裝在客戶端計算機上。 然后,您的Web應用程序可以包含使用該方案的鏈接。 實現該方案的擴展名可以解釋為與客戶端計算機上安裝的應用程序通信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM