2011-10-30 11 views
9

Ho un sistema (sviluppato da qualcun altro) in cui tutti gli utenti registrati possono eseguire query sui dati (simile a data.stackexchange.com). Il sistema si sta ingrandendo e più utenti interrogano il sistema e durante l'alto traffico il database è lento e ora ho paura della sicurezza.Risultati query di caching per utente

  1. Cosa posso fare per rendere il sistema più sicuro?
  2. Cosa posso fare per rendere più veloci le query da eseguire?

Ho una conoscenza di base di mysql e database e voglio imparare. Puoi indicare dove devo guardare e cosa posso fare? (Vorrei costruire la mia auto, quindi per favore nessun codice)

risposta

7

Beh, ci sono due grandi lavori da fare :)

  1. come rendere il sistema più sicuro? Bene, usa SSL dove è necessario. Se i dati non sono importanti, puoi andartene senza. Detto questo, se vuoi ultra-proteggere i tuoi accessi, allora insisti su HTTPS. Oltre a ciò, assicurarsi di non confrontare mai le password direttamente, piuttosto di confrontare gli hash delle password (con l'inclusione di un salt). Inoltre, se il tuo sito web consente di ricordare le persone, utilizzare un approccio basato su token. Ciò consente di assegnare un ID cookie univoco al client per un periodo di tempo in cui è valido. Non è infallibile, ma meglio di niente. Accoppiato con i tuoi requisiti di login SSL, sarà abbastanza buono.

  2. Dai un'occhiata ai gestori di cache. Ma prima di farlo, date un'occhiata a ciò che sta impiegando più tempo. Quali pagine particolari stanno colpendo il tuo sito web più duramente? Una volta accertato che è possibile elaborare una strategia di memorizzazione nella cache che è, sfortunatamente, completamente dipendente dal sito web. Ciò che funziona per un sito, sarebbe inammissibile per te. È possibile utilizzare una sorta di memcache per archiviare le cose comuni in modo che le query di base "Front page" e "Portal" siano memorizzate nella cache in modo efficiente. Il resto dovrà essere affrontato nel modo normale.

+0

Grazie per le informazioni –

+0

HTTPS non protegge contro le iniezioni SQL. Perché non memorizzare nella cache i risultati nelle tabelle? –

+0

@JamesM. Come lo farei? –

Problemi correlati