Il mio primo progetto serio e sono preoccupato per la sicurezza [chiuso]

-1

Sto creando un piccolo sito Web di social networking per studenti di una determinata università (dove studio) e sono preoccupato per la sicurezza (accesso al database). Cosa dovrei fare? Cosa devo controllare per l'ultima volta fino a quando sono andato online?

(Sì, Facebook Facebook. Facebook non ha quel senso di comunità.Non trovi tutti i tuoi compagni di dipartimento su Facebook.Non puoi vedere tutti gli studenti stranieri su Facebook.Non puoi nascondere la tua identità su Facebook mentre commenta, ecc ecc. Per favore, non confrontarlo con Facebook, abbiamo avuto un ottimo social network locale finché non è diventato pubblico . * ))

    
posta ilhan 13.03.2011 - 23:05
fonte

7 risposte

8

Disinstalla input dell'utente.

Non fidarti di nessun dato fornito dall'utente. Non posso sottolineare abbastanza questo

    
risposta data 13.03.2011 - 23:33
fonte
4
  • Non fidarti di nulla che proviene dal browser. La parte del tuo concetto di sicurezza implementato in JavaScript, beh, dovrebbe essere lunga circa 0 righe.
  • Utilizza HTTPS per il trasferimento di password e altri dati sensibili.
  • Attenzione allo scripting cross-site. Se si richiama l'input dell'utente 1: 1 in un messaggio di errore, senza disinfezione, potrebbe contenere javascript che il browser eseguirà nel contesto di sicurezza del proprio sito Web.
risposta data 13.03.2011 - 23:46
fonte
2

Qui ci sono molte buone risposte, ma una cosa che non è stata ancora esplicitamente detta * è:

Impedisci gli attacchi SQL Injection : non incorporare dati utente nelle query SQL.

Non menzioni in quale lingua stai scrivendo questa app. Il modo per evitare SQL Injection è utilizzare "query parametrizzate" o "istruzioni preparate". Ci sono esempi per Java e PHP in quell'articolo di Wikipedia. Qualunque sia la lingua che stai usando, devi scoprire come farlo e farlo. Come effetto collaterale, anche le istruzioni preparate dovrebbero rendere le query più veloci. (Il motore SQL non ha bisogno di rianalizzare la query e creare un nuovo piano di esecuzione solo perché i parametri sono cambiati.)

L'utilizzo di query parametrizzate non proteggerà il tuo database da solo, ma non riuscendo a farlo garantirà che un utente malintenzionato possa possedere il tuo database.

* È implicito nella raccomandazione di non fidarsi di nulla che provenga dal browser, naturalmente.

    
risposta data 14.03.2011 - 02:24
fonte
1

Per quanto riguarda la sicurezza con il tuo database (che è l'unica cosa che hai menzionato in particolare:

Per quanto ne so (e non sto ammettendo di sapere tutto ... ancora ...;) l'unico modo per accedere al database (a seconda dell'impostazione del server su cui opera naturalmente) è direttamente (essendo al terminale o via ssh) o tramite php o altri linguaggi web (non ho JavaScript con funzionalità db). Per far sì che un linguaggio web comunichi con il db, devono sapere:

  1. l'indirizzo al server db
  2. nome utente e password

In generale, l'unico modo per ottenere queste informazioni sarebbe quello di ottenere se dagli amministratori del sito direttamente o da un codice che avevi scritto che ha avuto accesso al database. Tuttavia, non sarebbero in grado di accedere più tardi a condizione che il tuo ftp / ssh sia configurato in modo appropriato.

Le cose che ti consiglierei di tenere d'occhio o fare sarebbero:

  1. guarda i punti di ingresso nel server (assicurati che tutti i punti di ingresso esterni come ssh, ftp, ecc siano configurati correttamente e che solo le persone fidate abbiano accesso diretto ai server).
  2. limitare il numero di persone che hanno accesso al server in un modo diverso dalla visualizzazione del sito.
  3. guarda quali registri sono configurati / disponibili sul tuo server. È possibile impostare la registrazione IP e la registrazione delle porte in modo da poter monitorare se ci sono mai stati alti tentativi di ftp o ssh nel server. Questo indica quasi sempre qualcuno che tenta di hackerare il tuo sistema.

Ovviamente c'è molto di più, ma questo è tutto ciò che ho tempo per il momento.

    
risposta data 14.03.2011 - 01:34
fonte
1

La mia risposta rapida sarebbe prendere uno qualsiasi degli strumenti di scansione delle vulnerabilità e indirizzarlo al tuo sito web. Non è il modo più scientifico per farlo, ma controllano le cose ovvie e ti insegnano molto su cosa cercare. O vai su opensource o molti venditori hanno una prova gratuita.

Se la tua app è ospitata presso l'università, chiedi agli amministratori del test prima di farlo. Altrimenti si faranno prendere dal panico quando vedranno il test e presumeranno di essere attaccati, non testati.

È anche un ottimo messaggio per i supervisori - "L'ho scansionato con X Security Scanner"

    
risposta data 14.03.2011 - 04:15
fonte
1

OWASP ha un sacco di risorse su come implementare correttamente buone pratiche di sicurezza come parte di un'applicazione. La Top Ten è un buon punto di partenza. Il pdf spiega sia i difetti di sicurezza più comuni sia come affrontarli.

link

    
risposta data 14.03.2011 - 07:24
fonte
1

Per quanto riguarda la sicurezza del sito. Legalo alla tua autenticazione di rete generale. Ci saranno quasi certamente strumenti per la maggior parte delle piattaforme web che faciliteranno l'integrazione del codice di identificazione dell'utente con ciò che offre la rete. In questo modo non devi reinventare troppe ruote durante l'autenticazione degli utenti e puoi essere il più sicuro possibile di essere quello che dicono di essere.

Inoltre, se perdono traccia di quelle credenziali non è un tuo problema.

    
risposta data 14.03.2011 - 11:04
fonte

Leggi altre domande sui tag