請教大家,因工作因素,需要在網頁上讀取健保卡的基本資料,
如:身份證、姓名、生日、性別。
目前是使用HTML連結WebSocket,然後透過中央健保局上的【元件安裝檔】,原本是可以正常執行(約1.0.X版)。不過,在最近更新健保局上的安裝檔(2.0.4)後,就無法在網頁上讀取健保卡資料了→出現【A001元件安裝問題,請下載元件安裝檔執行安裝[4041]】之錯誤。
經過測試,websocket連線、讀卡機、健保卡均正常。
再來透過程式的內範例,發現以檔案方式執行可以正常讀取健保卡,但是以web方式執行,卻不行。如下圖:
想請教大家是否有遇過相關問題及如何解決?懇請不吝指教,謝謝
你要先注意一件事。
因為並不太清楚你的外部資源的取得方式為何。
但如果是使用H5的外部資源取得函式
目前都是需要使用https才能啟用該函式的。
這點其實你善用F12大法。因該會有警告的紅字出現。
本機讀取HTML的情況下,一些限制會消失。
畢竟是本機啟用。沒必要限制。也不違反「本機安全性原則」
如果可以的話。你可以利用一下 localhost或127.0.0.1不帶PORT 。
有些限制會消失。
(帶PORT的話,限制就會出現)
不過就我過往的使用經驗。讀卡機的應用,大多只能跑在https上才會有作用。
當然,其實你也可以換其它瀏覽器試試。或能拿到老舊點的瀏覽器也是可以的。
就開發階段而言。
因為你沒給你的網頁供人測試,我只好去複製衛服部的測試網頁
我這邊沒開https也能讀取,所以我也不知道發生什麼問題,但我想應該是api有變動之類的。
因為你的情況看來神奇且有趣,所以閒散地找很久,看到罕見且奇怪的東東。
(都不是健保卡的系統就是了~)
我在這下面三個文件:
都看到在 Google Chrome 上對 chrome://net-internals/#hsts
的操作。
在隨便看過以下兩項文件後:
感覺在解決你的問題上的機率不高;但我悠晃找了一陣子,沒看到其他能參考的方法了,所以提出來讓你參考。
(另外能想到的,頂多就是巡一遍隱私權和安全性
~)
要試的話,記得先用 Query
查詢你想到的可能 URL (例如localhost
、127
等;應該不會用到 IPv6 吧?),看能否發現原因;
再硬著頭皮試試 Delete
看結果~
(除非你有Windows\System32\drivers\etc\hosts
的問題,但你能正常安裝健保卡元件,感覺不會是這邊;不過你還是能檢查看看)
話說,Google search 的相關人員到底在搞啥?要找資料都變得很難找……
我目前也是要做web讀取健保卡功能。
網路上有教學使用navigator.usb來讀取USB 在進行解碼,目前想到的方法是這樣。
在您上方的測試網頁中我無法成功,不知為啥。也開了HICOS的工具了。
我也有需要在網頁上讀取健保卡的需求,所以也去找了一些相關網頁。
發現在其他網頁讀取健保卡元件這件事情被判定成一個Cross-Site WebSocket Hijacking漏洞。
https://zeroday.hitcon.org/vulnerability/ZD-2020-00195
在連localhost或政府機關以外的網域應該會被擋下來。