Come costruire una rete di affiliazione sicura

2

Creerò una rete di affiliazione demo, che deve essere protetta. Diciamo che ho un'applicazione web chiamata Gestore della rete di affiliazione che gestisce tutti gli affiliati associati al mio negozio di libri online.

Affiliate Network Manager fornisce un'API che consente al sito Web di un editore (un sito affiliato) di ottenere il logo del sito web del negozio di libri, in modo che possa visualizzare il logo del negozio di libri sul sito Web dell'editore.

Assumiamo il seguente scenario: esiste un sito web del publisher A, con ID univoco 123 . Un utente finale visita il sito web, fa clic sul logo, viene reindirizzato al negozio di libri online e acquista un libro. Il sistema ottiene l'ID univoco dalla richiesta e sa che questa richiesta proviene dal publisher A. Quindi, ricorda che il client ha visitato la libreria dall'editore A. L'editore A riceve una commissione in base all'ammontare della transazione. / p>

Funziona, ma c'è un problema di sicurezza: Supponiamo di avere un altro editore B, con ID univoco 456 . Quindi un utente malintenzionato del publisher B può acquisire una richiesta dal produttore A e modificare l'ID univoco in 456 . Quindi, l'editore B riceverà la commissione dell'editore A.

Come posso risolvere questo problema di sicurezza e assicurarmi che l'autore dell'attacco non possa modificare l'ID univoco quando viene trasmessa la richiesta? O in altre parole: come posso fare l'autenticazione in questo caso?

    
posta user44858 17.04.2014 - 08:19
fonte

2 risposte

1

Quando ho capito bene, gli affiliati hanno banner aggiunti sui loro siti web che sembrano simili a questo nel codice HTML:

<a href="http://example.com/store.php?UniqueID=123"><img src="http://example.com/banner.png"></a>

eloscenariodiattaccoèchequandounvisitatorefaclicsuquelbanner,unMITMsostituiscel'UniqueIDnellarichiestadivisitatoriconunaltro.

Perottenereentratesignificativedallosfruttamentodiunaretediaffiliazione,sidovrebbeessereingradodiriprodurreMITMsuungrannumerodiconnessioni.Unattaccoman-in-the-middleègiàabbastanzadifficiledaeseguirequandol'utentemalintenzionatononcontrollaalcunainfrastrutturadiretetrailvisitatoreeilserver.Quindiloscenariochehaipropostononèmoltoprobabile,amenocheunodegliaffiliatisiaancheunISPconmoltaenergiacriminale.

Maanchequandol'attaccantehailpienocontrollodellaconnessione,puoirenderequasiimpossibileeseguireunattaccoMITMquandoutilizziTLS.QuindichiediaituoiaffiliatidicollegartialtuobookstoreusandoilinkHTTPSinvecediHTTP.Quandohaiunnegozioonline,dovresticomunquesupportareTLS.

<ahref="https://example.com/store.php?UniqueID=123"><img src="http://example.com/banner.png"></a>
    
risposta data 17.04.2014 - 14:56
fonte
1

Ciò che in pratica devi fare è:

  1. Verifica che una richiesta provenga da un utente autenticato, ovvero un utente (o un servizio) autorizzato a utilizzare la tua API; e
  2. Assicurati che una richiesta non venga alterata mentre sei in transito, comunemente noto come Man-in-the-the- attacco medio .

potresti installare certificati X.509 sul sito web di ciascun editore e utilizzarlo per autenticarli su una connessione HTTPS . Questo non sembra essere fatto comunemente, tuttavia.

Raccomando di fare qualche ricerca sullo standard OAuth 2.0 . Risolve entrambi i problemi e le librerie software esistono per la maggior parte dei framework di applicazioni Web.

    
risposta data 17.04.2014 - 08:54
fonte

Leggi altre domande sui tag