奇怪的封鎖?

最近 Java 開始一波新的更新,在更新到最新版本的 Java 之後,很多人本來用的好好的一些利用到 Java 的網頁出現了這樣的錯誤訊息:

應用程式已被安全設定值封鎖???


一般使用 Java 程式的網頁有銀行及金融體系的網頁,還有地籍圖查詢的網站也是,如果您有用到這些服務那一定會很傷腦筋!

而且不管你的瀏覽器是IE, Firefox 還是 Google Chrome 都是一樣的下場,所以可以確定不是瀏覽器的問題

找到官方的說明文件說到:

Java 7 Update 51 (7u51)

增強安全性功能

  • 安全性滑動軸的變更
    • 在高安全性設定中封鎖自行簽署和未簽署的 Applet
    • 要求高安全性設定必須要有權限屬性
    • 在中安全性設定時警告使用者有遺漏的權限屬性

原來是從 Java 7 Update 51 版開始,Java 已經預設在高安全性設定中封鎖自行簽署和未簽署的 Applet 應用程式!

而一般網頁使用的 Java Applet 都是未簽署或是自行簽署的,自然就會被封鎖啦!

Java 封鎖未經官方簽署的應用程式的目的

有人懷疑是不是 Oracle 官方想藉由簽署認證的 Java 應用程式來獲利,也許吧?但是反過來想如果官方能夠推動認證制度的話,是可以讓大家在使用 Java 的時候安全一點不是很好嗎?

但是這種的作法在高登看來是很可笑的,至於怎麼可笑看到文章的最後面你就知道了

如何解除 Java 應用程式的封鎖?

第一個方法就是調低安全層級,但是我不建議這麼做

比較正確的作法是透過編輯例外網站清單將你常用的網站加入白名單中

首先請找到[控制台]的[程式集]這個項目


執行裡面的[Java]或是[Java(32位元)]的 Java 主控台

如果你點選[安全]分頁但是沒看到[編輯網站清單]的話,請你先移除 Java 程式,再到 Java 官網 重新下載及安裝最新版的 Java 程式

操作的流程式先點選[安全]分頁,再點選[編輯網站清單]
然後貼上你要允許 Java 程式的 URL 網址,再按下[新增]按鈕
舉例來說地籍圖網站的網址是 http://easymap.land.moi.gov.tw/K02Web/K02Land.jsp
你只要貼上 http://easymap.land.moi.gov.tw/ 就可以
如果網址後面有加埠號的,例如 PChome 股市的 jar 網址是 http://stojw.pchome.com.tw:443/NewTA/ ,你就連埠號也一起加上 http://stojw.pchome.com.tw:443/ 這樣才能過關

新增好之後按下[確定]
如果你的網址不是 https 開頭的還會出現另一個警告,按下[繼續]才能新增這個網址到清單裡面

重新整理網頁你終於又看到這個熟悉的詢問是否執行 Java 應用程式的視窗,如果還是不行那可能瀏覽器要關掉再重開看看

真的這樣就安全了嗎?

可是這樣子要使用者自行承擔風險的作法,很多年以前微軟也用過這一招,也就是這個「使用者帳戶控制設定UAC」

從 Vista 開始微軟就要你自行判斷程式是不是可以執行(你會知道嗎?),還有最重要的是:當出了問題,那到底是他們的程式有漏洞要負責?還是你搞不清楚亂按同意要負責?
反正不會是我啦!
然後這些年你使用電腦有比較安全了嗎?