Esiste un modo sicuro per aggiungere una pagina di risoluzione dei problemi del database a un'applicazione?

4

Il mio team crea un prodotto (software di gestione aziendale) che i nostri clienti installano sui propri server. Il prodotto utilizza un database SQL per l'archiviazione dei dati e la configurazione delle app.

Ci sono stati parecchi casi in cui qualcosa di strano è accaduto nel database del cliente (causato da bug nella nostra app e talvolta anche da amministratori che hanno problemi con il database). Per capire cosa c'è di sbagliato con i dati, dobbiamo inviare script SQL al cliente e dire loro come eseguirli sul server del database. Quindi, una volta che sappiamo come risolverlo, dobbiamo inviare un altro script per riparare i dati.

C'è un modo sicuro per aggiungere una pagina nella nostra applicazione che permetta a un amministratore dell'applicazione di inserire script SQL che leggono e scrivono direttamente nel database? Il nostro team di supporto potrebbe utilizzarlo per aiutare i clienti a eseguire questi script, senza richiedere l'accesso diretto al server SQL.

La mia grande preoccupazione è che qualcuno possa abusare di questo potere per ottenere dati che non dovrebbero avere e forse per cancellare o modificare i dati che non dovrebbero essere in grado di modificare. Non sono preoccupato per gli amministratori di sistema, perché potrebbero trovare un altro modo per fare la stessa cosa. Ma cosa succede se qualcun altro ha avuto accesso al modulo? C'è un modo per fare questo genere di cose in sicurezza?

    
posta Josh Yeager 27.06.2011 - 18:08
fonte

2 risposte

3

Ho fornito pagine di supporto come quella che hai descritto in passato a un sistema che era già basato sul ruolo.

Non è un problema di autenticazione poiché presumo che sarai in grado di dire a CHI è attualmente connesso, ad es. Utente Joe, Assistenza Joe, ecc.

È un problema di autorizzazione. Questo può essere in genere risolto in un'applicazione web stateful aggiungendo un ruolo a utenti specifici, ad es. "Support", "Administrator", "Restricted User".

Questa pagina di supporto può semplicemente reindirizzare a una pagina di errore se tale ruolo non esiste per l'utente specificato.

    
risposta data 27.06.2011 - 18:13
fonte
2

Potresti riuscire a fare qualcosa con PKCS, crittografando gli script con la chiave pubblica del server e facendogli decodificare tutti i file caricati usando la sua chiave privata. È possibile mappare la pagina su una porta sicura e, eventualmente, solo aprire quella porta per la manutenzione (sebbene ciò potrebbe comportare un supporto amministrativo aggiuntivo sul lato client). Nel complesso, però, non consiglierei alcun tipo di strumento di manutenzione "back-door": aprire un buco di sicurezza per comodità sembra davvero brutto se qualcosa va storto.

    
risposta data 27.06.2011 - 19:24
fonte

Leggi altre domande sui tag