2010-09-23 48 views
0

我有一個Java小應用程序,它們在訪問網頁時將其下載到用戶的瀏覽器,並允許它們將可恢復的文件上載到我的服務器。顯然,這需要小程序訪問用戶的硬盤,我知道它是在常規沙盒Applet之外運行的。用戶會看到一個安全警告彈出窗口,要求他們允許該小程序運行。涉及磁盤讀取的應用程序的Java小應用程序安全警告

我已經使用verisign簽署了該applet,並且從applet的何處獲取的鏈接是通過帶有versigned證書的SSL。這些都沒有讓警告消失。

有沒有辦法讓所有警告消失?任何人都可以解釋幕後發生了什麼?

回答

1

您無法避免此消息,如果可以的話,這將是一個安全問題。

授予權限的小程序

如果你試圖運行小程序例子,你肯定看到了錯誤,當你點擊點擊Me按鈕。這是因爲Java 2 Platform安全性不允許小程序在沒有明確權限的情況下寫入和讀取文件。

小應用程序無法訪問本地系統資源,除非它被明確授予訪問權限。因此,要使FileUIAppl程序從text.txt讀取並寫入text.txt,必須爲每個文件賦予applet適當的讀取或寫入訪問權限。

使用策略文件授予訪問權限,appletviewer隨策略文件啓動,用於查看正在查看的小程序。

你可以做的是有一個配置(策略文件)來允許這個小程序使用一些文件。但是您必須手動執行此操作(出於明顯的安全原因)。檢查下面的鏈接。


資源:

+0

這是否擺脫了確認對話框?我希望不會,否則我會非常害怕:任何有訪問過我簽名applet的網站都可以讀取我的硬盤? – 2010-09-23 20:52:05

+0

不,用戶必須使用手動添加的預配置策略文件。但是你是對的這將是一個可怕的安全問題 – 2010-09-23 21:00:55

+0

資源鏈接被破壞。 – RealHowTo 2013-10-04 11:42:29

1

JNLP有FileOpenService允許不可信任的Java Webstart的應用程序顯示一個文件打開對話框,用戶和訪問文件的用戶選擇:

http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/jnlp/javax/jnlp/FileOpenService.html

+0

即使JNLP是一個更好的主意,我認爲OP的應用程序已經存在並且與applet一起工作,所以這並不能真正回答這個問題。 – 2010-09-23 20:46:55

+0

我不確定它是否能正常工作,如果服務是使用 -tag從舊式applet調用的。但JNLP可以啓動小程序,並在那裏運行。 – 2010-09-23 20:50:54

+1

對於演示。 FileObject參見http://pscode.org/jws/api.html#fs。自1.6.0_10引入Plug-In 2體系結構以來,JNLP小程序可嵌入網頁中。 GIFanim的小程序形式,http:// pscode。org/gifanim /#run是一個嵌入式JNLP小程序。基於JNLP的提示與傳統提示相比不那麼可怕,因爲它們出現在需要的時刻,而且對於所需的擴展權限更具體。 – 2010-09-24 02:30:38