Domanda

Quindi sto implementando un sistema di pagamento con 2CO sul mio sito Web. Sto usando il loro "reindirizzamento dell'intestazione" che restituisce il cliente a una pagina ASPX sul mio sito Web con un mucchio di querystrings dopo un pagamento riuscito.

Comunque, mi chiedevo. Qual è il modo corretto per proteggerlo? E se un cliente digitasse i parametri come `pagamento.aspx? Params-here" e aggiunto crediti in quanto desiderano al proprio account.

Come posso assicurarmi che sia autentico al 100%?

Suggerimenti? Grazie!

È stato utile?

Soluzione

Un approccio di soluzione a Manomissione dei parametri Di solito è mappare i parametri di query a qualcosa che non può essere facilmente manipolato, ad esempio utilizzando una funzione hash a senso unico per creare un digest da inviare insieme al parametro originale e limitare la durata durante la quale è valida una particolare mappatura/digest. Se il digest corrisponde al parametro di query, sai che la richiesta non è stata manomessa.

Ad esempio il tuo URL

Payment.aspx?Amount=100

potrebbe diventare

Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2

Ecco un articolo vecchio ma ancora pertinente e dettagliato sull'argomento: Passando parametri di querystring a prova di manomissione

In ASP.NET puoi usare Page.EnableEventValidation che utilizza una casella di testo nascosta come parte di un modulo per convalidare che una richiesta è stata emessa dal modulo:

Quando la proprietà abilitEventValidation è impostata su True, ASP.NET convalida che un evento di controllo ha avuto origine dall'interfaccia utente che è stata resa da tale controllo. Un controllo registra i suoi eventi durante il rendering e quindi convalida gli eventi durante la gestione postback o richiamata. Ad esempio, se un controllo dell'elenco include le opzioni numerate 1, 2 o 3 quando la pagina è resa e se viene ricevuta una richiesta di postback che specifica il numero 4, ASP.NET aumenta un'eccezione. Tutti i controlli basati su eventi in ASP.NET utilizzano questa funzione per impostazione predefinita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top