Sto lavorando con un gateway di pagamento che sembra avere un fondamentale fraintendimento dei "clienti" e come proteggere i dati sensibili.
Le istruzioni di integrazione riguardano principalmente una modalità operativa di "reindirizzamento", in cui un cliente viene indirizzato al sito Web del gateway per inserire i dati della carta di credito, dove visualizzano una ricevuta e poi vengono reindirizzati al tuo sito web.
Documenti :
https://www.myvirtualmerchant.com/VirtualMerchant/download/developerGuide.pdf
Ecco un esempio
<form
action="https://demo.myvirtualmerchant.com/VirtualMerchantDemo/process
.do" method="POST">
<input type="hidden" name="ssl_merchant_id"
value="my_virtualmerchant_id">
<input type="hidden" name="ssl_user_id" value="my_user_id">
<input type="hidden" name="ssl_pin" value="my_pin">
<input type="hidden" name="ssl_transaction_type" value="ccsale">
<input type="hidden" name="ssl_show_form" value="true">
<input type="hidden" name="ssl_amount" value="14.95">
<input type="submit" value="Click to Order">
</form>
Questo è il paragrafo che mi riguarda:
All sensitive data, specifically your VirtualMerchant credentials, should be placed in server side code rather than placing hidden value fields on an HTML form. This will limit the ability of malicious users to edit and use this data for their own fraudulent purposes. The use of server-side scripting allows custom HTML to be delivered to a client machine. The code that generates the custom HTML is processed on the Web server before the HTML is sent to the user's machine over the Internet. This is in contrast to client-side scripting where the HTML is modified, typically by java-script in the client's machine after the HTML and java are sent from the Web server. The primary strength of using serverside scripting with VirtualMerchant integration is the ability to hide the sensitive processing credentials from the browser.
Sembra eccezionale, non esponendo il mio ID account al client.
Tuttavia non penso che ciò che stanno suggerendo si prenda cura di esso. Posso solo vedere due modi per nascondere completamente i dettagli dal client:
-
Chiedi al server di agire come client e il browser non viene mai indirizzato al sito web del gateway di pagamento
Offrono questa modalità, ma la maggior parte dei documenti si riferisce invece alla modalità di modulo HTML / lato client.
- Utilizza un token firmato di qualche tipo - che non supportano.
Questo paragrafo, tuttavia, sembra pretendere qualcosa sull'utilizzo di "scripting lato server" per fornire "HTML personalizzato" e quindi nascondere i dettagli? Semplicemente non vedo alcun modo - anche se il reindirizzamento è avvenuto tramite un'intestazione Location
, i dati sarebbero comunque stati esposti al browser e chiunque con intenti malevoli potrebbe facilmente ottenerlo.
Qualcuno può aiutarmi a capire perché mi sembra così sbagliato?