Il sistema di hosting è sicuro per gli hacker di SQL injection nascondendo l'ID di amministratore?

1

Siamo 1-3 ragazzi che mantengono un sito web sviluppato in casa abbastanza grande ma goffo. Con circa 900+ tabelle mysql e un sacco di codice di accesso ai dati in PHP. Diciamo che è un'enorme quantità di codice per solo 1 o 2 ragazzi per correggerli tutti. Quindi abbiamo deciso di risolvere il maggior numero possibile di vulnerabilità (dichiarazione preparata) ma allo stesso tempo accettiamo il fatto che è impossibile raggiungere il 100% di sql-injection proof.

Abbiamo elencato molte cose che potremmo "facilmente" fare per ridurre il rischio / danno dagli hacker di SQLi. Uno di questi è il modulo admin diviso in e il server interno che non è aperto a Internet, questo ha aiutato molto quando l'hacker (s) è riuscito a crackare la password admin ma non poteva fare molto male al sistema.

Ora ne vogliamo ancora di più: nascondendo l'id amministratore dal database, l'amministratore e l'id dei moderatori sono attualmente memorizzati in una tabella "Moderatori". Quindi pensiamo che sia più facile spostare l'ID dell'amministratore in qualche file (config), perché raramente aggiungiamo / rimuoviamo l'amministratore. L'id dei moderatori è ancora presente in quel tavolo. Ora gli hacker devono indovinare quale utente tra mezzo milione di record della tabella "utente".

La mia domanda: con il modulo di amministrazione non disponibile su Internet, il server di hosting (Ubuntu) è al riparo da conquistato dagli hacker? Nel frattempo, tolleriamo gli attacchi all'utente normale / moderatore e l'intrusione al DB.

P / S:

  1. Il proprietario del sito Web sta accumulando più $$ per la correzione SQLi definitiva.
  2. Sembra che anche le dichiarazioni preparate non siano sicure al 100%: Le istruzioni preparate sono sicure al 100% contro l'iniezione SQL?
  3. Anche un bambino sa che l'hard-coding è un grande "no no" ma che il meglio che possiamo pensare ....
posta Phung D. An 18.07.2018 - 19:52
fonte

1 risposta

2

C'è una massima generale che il tentativo di nascondere le informazioni all'interno del tuo codice base (o struttura della tabella in questo caso) non aiuta effettivamente a proteggere il tuo software. Viene indicato come sicurezza attraverso l'oscurità e non è considerato una buona pratica.

Ho simpatia per la tua situazione, perché ho sicuramente errato in alcuni spaghetti al codice nel mio tempo, ma la cosa migliore è continuare a rifattorizzare il codice e ridurre i vettori di attacco.

Quando dici "crack admin password" intendi che qualcuno ha già ricevuto e rubato gli hash delle password? Se questa è una delle tue maggiori preoccupazioni, dovresti assolutamente saltare le tue password se non lo fai già, questo renderà molto più difficile agli hacker rubare le password.

In termini di sviluppo di un triage e di lavoro sul refactoring, consiglio vivamente La Guida 2018 alla creazione di un software PHP sicuro .

    
risposta data 18.07.2018 - 20:30
fonte

Leggi altre domande sui tag