Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227

    Criptare i dati di un form

    Ciao a tutti ragazzi, tempo fa ho fatto un piccolo JS come passa tempo, dall'idea molto semplice:

    - Ogni volta che un utente inviava un form, tutti i dati nei campi venivano presi e mostrati per esempio in un alert

    E ovviamente, se per esempio l'utente avesse inviato i dati di un form di login, lo script avrebbe restituito una cosa simile a questa:

    form.html
    codice:
    <form method="post" action="/accedi">
    	Email		<input type="text" name="email" />
    	Password	<input type="password" name="psw" />
    	<input type="submit" value="Accedi" />
    </form>
    risultato.js
    codice:
    alert("email: email@inserita.com, psw: passwordInserita");
    Ora, se si segue la stessa idea per esempio su Twitter, Facebook, o altri siti di una certa importanza, il risultato sarà una cosa simile:

    risultato.js
    codice:
    alert("A8401hBikrhS0412p");
    ovvero, il tutto criptato PRIMA dell'invio del form, quindi presumibilmente grazie a JS o qualche altro espediente. Ovviamente questo rende il tutto molto più sicuro, ma non riesco ancora bene a capire come la cosa sia strutturata

    Voglio dire, l'idea di base sarebbe quella di intercettare l'invio dei dati, e prima di eseguire il codice "svuotare" i campi, e caricare tutti i valori per esempio in un campo nascosto, ovviamente criptato, per poi inviare il tutto alla pagina di login o quel che sia.

    Così facendo però, bisognerebbe utilizzare Javascript, e quindi rendere "pubblico" l'algoritmo che si occupa di criptare i dati prima dell'invio del form, il che sarebbe controproducente se non addirittura inutile.

    La domanda in sostanza è: Come posso criptare i dati in uscita di un form, in modo che non vengano eventualmente intercettati da un'estensione pericolosa o del codice malevolo?

    Tutte le idee sono ben accette

    Thinker

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Per quanto ne so (ma non sono un esperto) si può usare md5 per criptare i dati ma non credo (non sono certo) si possa fare lato client con js. Ma una ottima sicurezza la potresti avere attivando ssl (128bit) cioè quello che usano le banche
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227
    Certo, con JS (o meglio, jQuery) si può utilizzare la funzione md5, ma sarebbe poco pratica dato che sarebbe poi "impossibile" decriptare i dati. Anche se si utilizzasse qualcosa come base64_encode() e base64_decode(), servirebbe a ben poco perchè sono funzioni che permettono pubblicamente di decriptare i dati, quindi chiunque potrebbe comunque intercettarli e decriptarli

    Servirebbe una funzione proprietaria, in linguaggi lato server, in modo che gli utenti non possano conoscere l'algoritmo utilizzato per criptare i dati.

    Ho letto in giro che bisognerebbe fare una chiamata ad una seconda pagina, prima di procedere con l'invio del form, che cripta i dati e li ritorna al form, che in seguito invia questi ultimi alla pagina di accesso.

    In sostanza:

    FORM
    1. Quando l'utente clicca sul pulsante Invia, ferma il processo di login e chiama tramite JS una seconda pagina che cripta i dati ricevuti dal form, e li ritorna in un campo nascosto
    2. Il form riprende, ma al posto di inviare tutti i dati, invia SOLO il messaggio criptato nel campo nascosto


    Ma ovviamente una cosa simile non andrebbe bene perchè

    1. Se l'utente ha JS disattivo ( ) non cripta un bel niente
    2. Lo script che avevo fatto intercettava comunque l'evento onSubmit() tramite JS, quindi otterrebbe comunque i dati non criptati prima che questi vengano inviati alla pagina secondaria

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Io restò della mia idea usare un protocollo https, altre soluzioni le vedo poco pratiche e insicure
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,647
    MD5 lo si utilizza solo per la password. Se vuoi criptare i dati puoi utilizzare una criptazione simmetrica, ci sono script JS già pronti a riguardo. Il problema è che in qualche modo devi passare la chiave pubblica da A a B, in questo caso dal browser al server.

    Il top sarebbe l'assimmetrica (dai un occhio a jCryption), che poi è quella utilizzata nei certificati SSL

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227
    @cavicchiandrea Https è senza dubbio indispensabile per la sicurezza, ma la mia è solo una curiosità generica, non legata ad un particolare sito web, comunque grazie

    @Ranma2 Grazie per la risposta, ho dato un'occhiata veloce alla demo di jCryption e (almeno con una prima prova) non intercetta nemmeno il submit del form, il che già bloccherebbe un malintenzionato alle prime armi ^^
    Ovviamente devo ancora guardare bene come funziona, ma dando un'occhiata veloce, se ho ben capito, si può utilizzare anche una password generata casualmente come i movimenti del mouse, il che è una cosa ottima Rimane solo il "problema" che è comunque JS, quindi dovrebbe comunque esserci un modo per recuperare la password generata in qualche modo ma.. questo lo vedrò nei prossimi giorni

    Grazie a tutti per le risposte, vi farò sapere se ho novità

    Thinker

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.