iT邦幫忙

1

使用HTML讀取健保卡出現【4041】錯誤

  • 分享至 

  • xImage

請教大家,因工作因素,需要在網頁上讀取健保卡的基本資料,
如:身份證、姓名、生日、性別。
目前是使用HTML連結WebSocket,然後透過中央健保局上的【元件安裝檔】,原本是可以正常執行(約1.0.X版)。不過,在最近更新健保局上的安裝檔(2.0.4)後,就無法在網頁上讀取健保卡資料了→出現【A001元件安裝問題,請下載元件安裝檔執行安裝[4041]】之錯誤。
經過測試,websocket連線、讀卡機、健保卡均正常。
再來透過程式的內範例,發現以檔案方式執行可以正常讀取健保卡,但是以web方式執行,卻不行。如下圖:
直接開啟html檔,可以執行
以web方式開啟。出現錯誤
想請教大家是否有遇過相關問題及如何解決?懇請不吝指教,謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1

你要先注意一件事。
因為並不太清楚你的外部資源的取得方式為何。
但如果是使用H5的外部資源取得函式
目前都是需要使用https才能啟用該函式的。

這點其實你善用F12大法。因該會有警告的紅字出現。

本機讀取HTML的情況下,一些限制會消失。
畢竟是本機啟用。沒必要限制。也不違反「本機安全性原則」

如果可以的話。你可以利用一下 localhost或127.0.0.1不帶PORT 。
有些限制會消失。
(帶PORT的話,限制就會出現)

不過就我過往的使用經驗。讀卡機的應用,大多只能跑在https上才會有作用。

當然,其實你也可以換其它瀏覽器試試。或能拿到老舊點的瀏覽器也是可以的。
就開發階段而言。

mtlin00 iT邦新手 5 級 ‧ 2022-12-09 20:12:31 檢舉

謝謝您的回覆,因為是在測試區執行,就沒做SSL了。不過可以排除https的問題,因為在公司的網址是有這個的,但仍是無法讀取健保卡。
而在檢查F12的Console時,也沒有錯誤,這是我還在除錯的原因。

1
froce
iT邦大師 1 級 ‧ 2022-12-09 08:34:42

因為你沒給你的網頁供人測試,我只好去複製衛服部的測試網頁

https://ithelp.ithome.com.tw/upload/images/20221209/20104001yggyiw6u2x.jpg

我這邊沒開https也能讀取,所以我也不知道發生什麼問題,但我想應該是api有變動之類的。

mtlin00 iT邦新手 5 級 ‧ 2022-12-09 20:07:41 檢舉

謝謝您的回覆,因為source code都是同健保局的驗證方式,所以我想說就沒提供了,這是我思慮不週的地方。
請問您有做其他設定嗎?因為我這邊都沒驗證成功,基本上判斷是新版安裝檔的原因,但我還是找不到如何解決。https://ithelp.ithome.com.tw/upload/images/20221209/20136950Xk6UulZhiy.jpg

1
re.Zero
iT邦研究生 5 級 ‧ 2022-12-10 12:31:35

因為你的情況看來神奇且有趣,所以閒散地找很久,看到罕見且奇怪的東東。
(都不是健保卡的系統就是了~)

我在這下面三個文件:

  1. 跨平台元件使用障礙排除說明
  2. 卡片憑證相關軟體 > (2) HiCOS 自我檢測
  3. 共通常用文件: 3. 新版自然人憑證安裝元件操作步驟【PDF】

都看到在 Google Chrome 上對 chrome://net-internals/#hsts 的操作。

在隨便看過以下兩項文件後:

  1. [筆記]如何關閉瀏覽器的HSTS避免強制轉https妨礙開發
  2. 開啟HSTS讓瀏覽器強制跳轉HTTPS訪問

感覺在解決你的問題上的機率不高;但我悠晃找了一陣子,沒看到其他能參考的方法了,所以提出來讓你參考。
(另外能想到的,頂多就是巡一遍隱私權和安全性~)

要試的話,記得先用 Query 查詢你想到的可能 URL (例如localhost127等;應該不會用到 IPv6 吧?),看能否發現原因;
再硬著頭皮試試 Delete 看結果~
(除非你有Windows\System32\drivers\etc\hosts的問題,但你能正常安裝健保卡元件,感覺不會是這邊;不過你還是能檢查看看)

話說,Google search 的相關人員到底在搞啥?要找資料都變得很難找……

mtlin00 iT邦新手 5 級 ‧ 2022-12-11 21:07:39 檢舉

謝謝您的回覆,目前google到的資料,也都大同小異,而且類似的問題好像只有我發生?
目前懷疑的點在於安裝檔不知有做什卡關(或安全性)?,因為在健保署那邊的測試認證是沒問題的,不過複雜下來並以web方式執行確不行,還在找哪裡被卡住了。
隱私權和安全性也有試過
另外,我把安裝檔的憑證匯入chrome,也不行。
還在努力試中....

0
yang900412
iT邦見習生 ‧ 2023-01-18 00:12:59

我目前也是要做web讀取健保卡功能。
網路上有教學使用navigator.usb來讀取USB 在進行解碼,目前想到的方法是這樣。
在您上方的測試網頁中我無法成功,不知為啥。也開了HICOS的工具了。
https://ithelp.ithome.com.tw/upload/images/20230118/20157080g7Tk2Y28uQ.png

0
kaii
iT邦見習生 ‧ 2023-02-07 17:10:15

我也有需要在網頁上讀取健保卡的需求,所以也去找了一些相關網頁。

發現在其他網頁讀取健保卡元件這件事情被判定成一個Cross-Site WebSocket Hijacking漏洞。

https://zeroday.hitcon.org/vulnerability/ZD-2020-00195

在連localhost或政府機關以外的網域應該會被擋下來。

我要發表回答

立即登入回答