Sono campi di input che non hanno nome="" inviati tramite il browser [chiuso]

2

I campi di input che non hanno attributi name suscettibili agli attacchi MITM (senza SSL) o altri attacchi?

Ad esempio:

<form action="" method="post">
    <label for="credit_card_number"><input id="credit_card_number" type="text" value="4111111111111111"></label>
    <button type="submit">Submit</button>
</form>

Quello che sto facendo è usare javascript per ottenere i valori, quindi postare su stripe.js, ricevere un token e quindi cancellare tutti i valori dei campi CC prima di inviare il modulo al server.

Comprendo che SSL sarebbe una buona idea, ma sarebbe necessario? E perché se così.

    
posta Dan Cameron 20.08.2014 - 03:41
fonte

2 risposte

1

Are input fields that don’t have name="" sent via the browser

Non dal processo di invio del modulo HTML standard. Tuttavia JavaScript sul lato client può leggere il contenuto dei campi e inviarli da soli.

Are input fields that don’t have name attributes susceptible to MITM attacks (w/o SSL) or any other attack?

Sì. Tutto il contenuto di una pagina che non è protetto da SSL è suscettibile agli attacchi MitM.

Anche se stripe.js legge il numero della carta di credito e lo invia ai server Stripe in modo completamente sicuro, non c'è modo di sapere che il resto della pagina non è stato manomesso da un attacco MitM attivo al momento del caricamento. Ad esempio, un pezzo di JavaScript potrebbe essere stato iniettato nella pagina che ascolta i tasti e invia il numero di carta di credito all'autore dell'attacco separatamente.

Questo è il motivo per cui il consiglio agli utenti è sempre quello di verificare che SSL sia abilitato a livello di pagina e perché PCI-DSS richieda che le pagine Web in cui l'utente è invitato a digitare una password debbano mostrarsi come SSL- protetto nell'interfaccia utente del browser.

I understand that SSL would be a good idea but would it be necessary?

Sì. In ogni caso Stripe ti richiede per farlo .

  • Serve your payment page over SSL, i.e., the page's web address should begin with https, not http.
    
risposta data 20.08.2014 - 13:47
fonte
2

. Qualsiasi richiesta HTTP non protetta da SSL / TLS / HTTPS è vulnerabile agli attacchi MitM. Senza l'integrità fornita da HTTPS, qualsiasi componente dell'HTML pubblicato su HTTP è vulnerabile ad attacchi o modifiche da parte di un man-in-the-middle. Ad esempio, l'azione del modulo potrebbe essere modificata, quindi anziché il POST di post sulla pagina desiderata, potrebbe essere PUBBLICATO su una pagina su un sito dannoso (come designato dal MitM).

La linea di fondo è che qualsiasi cosa tu invii al client su HTTP potrebbe essere cambiata prima che arrivi effettivamente al client. Se hai bisogno di sicurezza (e certamente lo fai per le transazioni di pagamento) hai bisogno di HTTPS per assicurarti che il cliente riceva ciò che hai intenzione di ricevere.

    
risposta data 20.08.2014 - 05:27
fonte

Leggi altre domande sui tag