2010-08-13 159 views
2

畢竟我已閱讀了這個主題,我知道沒有辦法從瀏覽器自動上傳文件而沒有某種「提升的權限」。從瀏覽器自動上傳文件

但是,提升的權限是我擁有的東西,因爲應用程序在Intranet上運行,並且用戶當前可以訪問ActiveX控件,從而可以使用COM執行一些文檔掃描。然後,需要上傳保存在文件系統上的掃描文檔。

現在,唯一的瀏覽器要求是IE7 +兼容性。但對於IE8,將值設置爲<input type="file" ... />的唯一方法是手動點擊「瀏覽」按鈕。

即使將網站添加到受信任的站點並且ActiveX代碼的完全訪問被啓用,是否真的沒有辦法爲輸入表單字段設置值?

這似乎也適用於Flash和Silverlight,安全策略使得無需用戶手動選擇文件就無法上傳文件。 Silverlight可能可以在OOB模式下實現,但如果用戶每次都必須單擊以啓用瀏覽器模式,那麼這種方式太具有中斷性。

ActiveX和Java小程序可能可以做到這一點。如果使用<input type="file" ... />不是一個選項,是否有任何輕量級(可能是免費/開放源代碼)的ActiveX控件可以處理從文件系統上傳?

更新

我沒有深入比較研究所有選項回到那裏,和它變成了它的安全模型的模式,這使得它不可能做到從瀏覽器自動上傳文件而無需用戶交互。這意味着使用必須手動進行上傳文件或確認一些ActiveX控件或類似的插件來完成這項工作。如果您設法找到一種上傳方式,而無需使用提升權限的特殊插件,您可能會發現一個安全漏洞,該漏洞很快就會解決。然而,這是Web瀏覽器技術設計的工作方式。

正如Jesse指出的,第三方ActiveX控件存在信任和許可問題。

回答

5

由於安全原因,Flash,Silverlight和Java等RIA不允許這樣做,並且Silverlight OOB可信應用程序在技術上可行,但聽起來並不理想。因爲你基本上是在尋找一個能夠在網絡安全模型中挖出一個洞的組件,所以我懷疑你會發現很多現成的組件(如果你這麼做的話,我會成爲這樣的組件)從安全的角度來看他們是可疑的)。

我建議爲此編寫自己的ActiveX控件,但一定要考慮安全隱患。例如,您可能希望確保此控件只能由公司網絡上的受信任網站使用 - 這有時稱爲「網站鎖定」。

下面是編寫安全ActiveX控件的好頁面:http://msdn.microsoft.com/en-us/library/bb250471(VS.85).aspx