2011-10-30 13 views
9

Mam system (rozwijany przez kogoś innego), w którym wszyscy zarejestrowani użytkownicy mogą wysyłać zapytania do danych (podobne do data.stackexchange.com). System staje się coraz większy, a więcej użytkowników przesyła zapytanie do systemu, a podczas dużego ruchu bazy danych są wolne i teraz obawiam się bezpieczeństwa.Wyniki zapytania buforowania na użytkownika

  1. Co mogę zrobić, aby system był bardziej bezpieczny?
  2. Co mogę zrobić, aby przyspieszyć wykonywanie zapytań?

Mam bardzo podstawową znajomość mysql i baz danych i chcę się uczyć. Czy możesz wskazać, gdzie muszę wyglądać i co mogę zrobić? (Chciałbym zbudować mój własny, więc proszę nie kod)

Odpowiedz

7

Cóż, masz dwa duże zadania do zrobienia :)

  1. Jak uczynić system bardziej bezpieczny? Cóż, użyj SSL tam, gdzie musisz. Jeśli dane nie są ważne, możesz uciec bez niego. Powiedział, że jeśli chcesz wyjątkowo zabezpieczyć swoje loginy, nalegaj na HTTPS. Ponadto upewnij się, że nigdy nie porównujesz haseł bezpośrednio, zamiast porównywać hashe haseł (z włączeniem soli). Dodatkowo, jeśli Twoja witryna pozwala na zapamiętanie ludzi, użyj podejścia opartego na tokenie. Umożliwia to przypisanie unikatowego identyfikatora pliku cookie do klienta przez okres, w którym jest on ważny. To nie jest głupie, ale lepsze niż nic. Sparowany z wymaganiami logowania SSL, będzie całkiem niezły.

  2. Zobacz menedżerów pamięci podręcznej. Ale zanim to zrobisz, miej skrępowanie w tym, co zabiera najwięcej czasu. Które strony uderzają w Twoją stronę najtrudniej? Kiedy upewnisz się, że możesz wymyślić strategię buforowania, która jest, niestety, całkowicie zależna od witryny. To, co działa na jednej stronie, byłoby dla Ciebie niedopuszczalne. Możesz użyć jakiegoś memcache do przechowywania zwykłych rzeczy, aby podstawowe zapytania "Pierwsza strona" i "Portal" były efektywnie buforowane. Resztę trzeba będzie załatwić w zwykły sposób.

+0

Dzięki za informacje –

+0

HTTPS nie chroni przed iniekcjami SQL. Dlaczego nie buforować wyników w tabelach? –

+0

@JamesM. Jak bym to zrobił? –

Powiązane problemy