【為什麼我們要挑選這篇文章】網路購物、信用卡付款是我們都有的經驗,這意味著會在網路輸入個資和信用卡資料,有被盜取的風險。日前,爆出有廠商在電腦硬體中加入晶片,去偷別人的資料。本文作者是 senior software engineer ,在串流相關的公司工作,看了報導後撰寫這篇文章,說明電商應該遵守特定流程,以保護消費者的資安。下文是作者第一人稱角度敘述。(責任編輯:郭家宏)

前言:
最近有新聞爆出某厲害國在替別人生產的電腦硬件中加入自己的特殊晶片去偷別人資料甚至入侵系統。

某朋友的名句:
所謂的安全,便是入侵/破解的成本,比所得到的利益多,讓賊人懶得去入侵你的系統。(同理,我這個窮鬼非常安全)

今天談的,便是降低賊人系統後所得到的利益。

伺服器絕對不要接觸到信用卡資料

首先非常非常重要的一句:
除非你的公司是上市大公司,有什麼 PCI 安全認證(具體名字我忘了)(TO 編按: PCI-DSS 認證),發生資安問題要賠客戶十億也沒問題的。否則……

絕對不要讓你的伺服器接觸到客戶的信用卡資料!!!
絕對不要讓你的伺服器接觸到客戶的信用卡資料!!!
絕對不要讓你的伺服器接觸到客戶的信用卡資料!!!

請記住:
大部份專業級的 cracker 都是來求財的,他們也是要交稅要養小孩的。他們不會那麼空閒,去入侵別人系統然後單純把主頁換成自己頭像的。

(謎之聲:最近不是有人入侵自己住的酒店系統還高調寫文丟上網,然後結果被抓了嗎 XD)

只要你的系統有任何一環接觸到客戶的信用卡資料,這些信用卡資料便會引來cracker注意然後入侵。

遵守這些步驟,信用卡資料不會被伺服器碰到

所以,之後會說一個電商的付款的流程,去示範具體怎讓自己伺服器接觸不了客戶的信用卡資料下讓客戶以信用卡付費購物。(註:具體細節不同的銀行/payment gateway 會有細微分別)

1 客戶按下結帳,進入付費流程。

2 電商網站客戶 redirect 到銀行的系統頁面,並且附上自己的商家 ID,訂單編號,應收金額,成功後的 return url。

3 客戶在銀行的系統中輸入自己的信用卡資料。

4 銀行收到信用卡資料,對客戶帳戶扣款,並且把這筆交易的(商家 ID,訂單編號,應收金額)紀錄下來方便日後查帳。

5 銀行跟據第 2 步的 return url ,把客戶 redirect 回到電商網站,並且付上加密後的訂單編號。

6 如果電商網站能以銀行提供的 public key 解密銀行給予的資訊,並且訂單編號是相配的,則電商網站能確定客戶已經在銀行的系統付費了,所以可以進入送貨流程了。

7 如果用戶是用 Internet explorer ,並且在第 4 步後當機藍畫面。一般銀行會提供 API ,讓電商網站在客戶重新登入時,以(商家 ID ,訂單編號)來跟銀行查詢是否已付費,所以正常不會發生客戶付費了但是電商網站沒法繼續流程。

重點:以上流程,電商網站是完全沒接觸到客戶的信用卡資料的。

作者介紹:在串流相關的公司工作,職位是資深軟體工程師。

(本文經原作者 Backend台灣 授權轉載,並同意 TechOrange 編寫導讀與修訂標題。Pxhere, CC license)

更多信用卡資安消息

信用卡上設指紋辨識,讓駭客竊得卡號也盜刷無門!

英國航空:駭客竊取 38 萬筆刷卡資料,請大家務必檢查信用卡帳單是否異常

只要十分鐘就可盜取信用卡資料,最潮的支付工具 Square 有麻煩了