如何在您的應用程序中進行安全的在線支付

已發表: 2021-10-05

隨著我們的應用程序正在擊敗臭名昭著的黑客攻擊,似乎突然冒出來挑戰我們的移動應用程序支付安全,大大小小的企業對移動應用程序安全的努力已經開始起飛。 無處不在,從電子商務商店到高級機構的金融系統,人們都要求開發在線支付安全應用程序。 這些天搜索最多的請求是:如何建立具有更高保護級別的東西? 我們將盡最大努力在這裡強調它。

安全是一種新的黑色。

還記得最近在烏克蘭燃起熊熊烈火併肆虐全球的網絡流行病嗎? 像這樣的攻擊證明我們所尋求的所有在線交易安全性尚不完善——有一天所有的機器都會突然屈服於欺詐。 欺詐的類型多種多樣,但大多數黑客的目標是金融數據安全,主要是銀行賬戶和交易的安全。

不幸的是,沒有針對網絡攻擊死亡的移動銀行應用程序開發的靈丹妙藥,但肯定有一些東西可以提高支付和交易的安全性。 首先,您的移動應用程序安全項目可能涉及 3 種類型的支付:

  • 傳入

  • 外出

  • 系統內交易

讓我們以 Uber 的一個強大的移動應用程序為例,並在其示例中研究所有三個類別。 收款是客戶為您的應用程序幫助他執行的特定產品或服務而進行的付款; 一旦您的優步結束,您的信用卡就會被收取費用。 支出是由系統本身向它所代表的員工支付的款項。 當優步司機將滿意的客戶送到他的目的地時,系統會等待一段時間,然後自動將錢轉給司機。 這段等待期的目的是讓用戶有機會抱怨他所獲得的服務質量。 此選項需要用戶方面的一定程度的關注 - 一旦此期限結束,客戶將無法再填寫投訴報告。 傳出和傳入的金融交易都需要將第三方支付提供商集成到系統中。

但是,系統內交易的工作方式有所不同 - 例如,系統內兩個用戶之間的財務操作就是其中的一個例子。 此時,由於上述系統內發生的所有交互,交易也可以在沒有集成支付提供商的情況下進行。 前面描述的收費方法與其他功能一起廣泛用於各種金融應用程序。

如何保護您的移動應用程序? 好,

手機銀行

...你需要他們在場。

“隨時歡迎每一位創作者加入他的想法——為了最大限度地提高產品的可用性!”

基本上,每個以移動銀行應用程序安全為核心的移動錢包都需要一定數量的功能才能使其具有吸引力和“用戶使用”。 以下是被視為必不可少的功能的簡短列表:

  • 隨時訪問您的銀行賬戶,風雨無阻

  • 進行金融交易的能力,尤其是:

a) 將您的資金轉入本銀行系統內的任何賬戶。

b) 將您的資金轉移到全球任何賬戶、信用卡或借記卡。

c) 支付任何通信服務費用 - 為您的手機充電、支付給您的互聯網提供商等。

d) 支付銀行系統業務邏輯中包含的任何其他第三方服務 - 公共汽車/飛機/火車票、食品、美容產品和遊戲、電影和足球(或任何其他流行運動)門票。 可以通過您的應用程序進行的不同付款的數量可能會有所不同,因為這完全取決於在業務分析階段創建的業務邏輯和要求。

e) 支付賬單的能力也是一種暗示,它可以最大限度地提高用戶在應用程序中的參與度,只要用戶可以擁有整個範圍的公用事業(煤氣、電、水、暖氣等)。

  • 能夠管理您的卡(阻止/取消阻止它們,設置在線支付限額,更改 PIN 或 CW2 代碼,添加、訂購或關閉現有卡)。

  • 捐贈的一項功能對銀行應用程序非常有用 - 表明您和您的客戶參與了任何類型的慈善事業。

  • 能夠訪問用戶的地理位置並向他顯示附近的自動取款機和最近的銀行分行。

功能的範圍並沒有以上述結束 - 這些是我們的業務分析師在考慮如何保護在線交易時可以想到的,但總是歡迎每個創作者加入他的想法 - 為了最大化產品的可用性!

提到的功能的數量和復雜性需要銀行移動應用程序的雙重安全性。 但是,如何使您的在線金融交易安全?

1.系統無需保存用戶的財務憑證。

一旦完成傳入、傳出或系統內操作,在保護在線交易的同時,有必要將所有用戶的商業信息排除在支付服務提供商上。 提供商通常有一個保險庫和內置的代幣化系統,用於執行和保護所有金融操作。 在您的網站(或在您的應用程序中)必須插入一個特定的表單,該表單不是整個項目代碼的一部分,如下圖所示:

條紋支付計劃

稍後,接收到的令牌和表單的數據安全協議進入我們的服務器,只有在此之後,應用程序才能向系統收費。 這種工作方式被 Stripe 支付提供商廣泛使用。

儘管這種方法確實廣為人知,但它存在一定的缺陷。 當您的應用程序將卡的數據發送到支付服務的服務器時,它沒有提及轉移的確切金額。 因此,假設地說,系統有可能提取比應有的更多的錢 - 錯誤或系統錯誤。 這個問題還沒有解決,所以,雖然 Stripe 是一個方便的解決方案,用戶不會被重定向到任何地方,但它仍然缺乏一個穩定的安全過程。

另一個廣為人知的系統是 PayPal,其“通過 PayPal 付款”按鈕。

貝寶方案

貝寶的工作方式是一種“網絡應用支付處理”——當用戶點擊支付屏幕時,它會自動將用戶權利轉移到貝寶平台。 當客戶進一步通過該服務付款時,您的移動銀行應用程序必須創建一個發送到 PayPal 的實體,該實體會通知是否已收到付款。
區分 Stripe 和 PayPal 移動支付網關的關鍵點在於,在 PayPal 中,您可以查看實際轉移的資金金額,但會將您重定向到他們的平台; 另一方面,Stripe 不會讓您關注任何外部鏈接,但“精確金額”移動支付安全問題可能會分散您未來用戶的注意力。

2. 系統必須保證代幣的安全和健全。

如果您正在構建具有訂閱選項的安全移動應用程序 - 那麼它必須安全地存儲在服務的數據庫中。 項目的結構應該只允許將這些代幣保留在那裡——不包括公共資料或任何其他實體的選項。

另一種保護金融交易的方法是將 HTTPS 保護加密到網站結構中。 如果網站上沒有 - 用戶不應將資金轉移到第三方資源,以保護您的在線金融交易。

3. 盡量避免“例外、支付、重複”錯誤。

您的支出(資金轉移,當系統將資金轉移給用戶時)可能發生的最可怕的事情是“無限循環”。 對用戶的支付是系統運行的後台任務之一,如果發生異常 - 任務將重新運行。 因此,每筆交易只能反復發送給一個用戶。

如何防止這種情況:

  • 設置後台任務的管理器,使財務任務不會陷入無限循環;
  • 在編輯或創建元素的每個階段,如果您在日誌文件中記錄它會有所幫助,這樣就不會忽略任何更改。 即使發生了循環,至少你能注意到它的原因和錢去了哪裡,這樣它就可以退還給用戶。

簡而言之,安全銀行應用程序需要遵循以下規則:

  • 無需存儲用戶的財務憑證

  • 在沒有 HTTPS 保護的情況下,無法向平台轉賬。

  • 每個服務器的響應或請求、每個動作、webhook 或回調都應記錄在最詳細的信息中

  • 支付流程應盡量簡化,最大限度地依賴支付服務提供商,盡可能避免內部創建電子錢包

  • 始終花時間測試應用程序的運行方式,因為只有在測試過程中才能預測所有負面情況

  • 強烈建議使用網絡鉤子和回調

  • 始終檢查支付系統為您提供的報告,因為您可以發現那裡是否發生問題

萬物的移動解決方案。

如今,每個企業最常見的趨勢之一是通過移動應用安全和移動應用加密實現移動化。 從大型金融公司到最小的街角商店,這些智能小工具已經佔據了世界的每一個角落。 此外,通過 Statista 的見解快速消化表明,這種趨勢只會在未來 7 年內增長。

無論您選擇哪個平台——iOS 或 Android 應用程序安全,保護網上銀行都是一個複雜但真正有益的過程。 試想一下,你有潛力為用戶和他們的資金培養安全感,讓數百萬人在夜間安息……這不是改變生活的未來嗎?

由亞歷克斯·阿韋里亞諾夫、奧列格·察連科和埃琳娜·貝薩拉波娃撰寫。