Il controllo degli accessi lato server è sufficiente o devo crittografare i querystring

0

Ho un sistema ASP Classic che trasmette id sequenziali corrispondenti a chiavi nel database.

Avevo ottenuto un modulo di crittografia (chilkat, un controllo activex) che stavo usando per crittografare e decriptare interi querystring.

Tuttavia, poiché convalido il diritto di un utente di accedere a una particolare risorsa (annotata da un ID sul querystring), devo ancora eseguire la crittografia dell'URL? Il mio sito dovrebbe superare un controllo di sicurezza in questo caso?

(o, cosa più importante, dovrei continuare a fare entrambe le cose o il controllo di accesso è sufficiente)

    
posta Caveatrob 30.07.2014 - 21:56
fonte

2 risposte

1

È preferibile utilizzare un identificatore non sequenziale (è quindi possibile registrare / monitorare i tentativi di accesso ai file inesistenti, ad esempio), ma in nessun caso è essenziale ed è improbabile che fallisca un controllo a condizione che lo schema di ruolo / autorizzazione sia sul posto è robusto. Volete essere sicuri di avere una copertura completa dei controlli di autorizzazione sull'accesso alle "cose".

Devi anche assicurarti che l'ID utente non possa essere modificato con un altro utente. Di solito è meglio inviare all'utente un token di sessione casuale e collegarlo a una sessione utente e identità / autorizzazione dietro le quinte.

Il test della tua autorizzazione dovrebbe far parte del tuo ciclo di regressione prima di ogni rilascio e può essere facilmente automatizzato da persone come HtmlUnit ( link ) o selenio ( link ).

    
risposta data 31.07.2014 - 15:00
fonte
0

La crittografia ha senso solo se:

  • Il valore crittografato potrebbe venire sotto gli occhi di entità / persone a cui dovrebbe essere negata la conoscenza del valore.
  • I sistemi che devono elaborare il valore possono decrittografarlo.

Nel tuo caso, se si cripta il lato client, allora questo deve essere per proteggere contro il server stesso. Tuttavia, se il server deve essere in grado di comprendere i dati, al fine di applicare i filtri, il server deve essere in grado di decrittografarli. Pertanto, tale crittografia non può proteggere i dati dal server. La conclusione è che la crittografia che stai descrivendo non ha senso: non fornisce alcuna proprietà di sicurezza utile.

(Beh, potresti criptare per un altro motivo: proteggere dalle intercettazioni in transito tra client e server, ma ciò si applicherebbe solo se fai qualcosa di stupido, cioè non usando SSL. La soluzione per cose stupide è smettere di farle .)

    
risposta data 30.07.2014 - 22:09
fonte

Leggi altre domande sui tag