Cześć.
Macie jakieś rady (artykuły o tej tematyce również są mile widziane) jak dobrze zabezpieczać aplikacje www, gdzie w bazie danych przechowujemy jakieś poufne dane, informacje personalne o użytkownikach, co zdecydowanie należy dobrze chronić? Jakie podstawowe błędy należy unikać, na co zwrócić uwagę?
W moim przypadku akurat będzie to aplikacja napisana z Symfony 4. Jakieś trudne, złożone hasła do bazy danych - okej, ale co więcej? Szyfrowanie haseł wiadomo, ale co z innymi danymi jak powiedzmy:
a) dane tekstowe w bazie takie jak imię, nazwisko, miejscowość, jakieś inne szczegóły o danej osobie - wszystko to jest potem w bazie, więc teoretycznie jest proste do zdobycia. Co sądzicie o szyfrowaniu także i takich informacji? Ma to sens? Robi się tak? Chyba dosyć słabo wydajne byłoby takie coś?
b) pliki pdf z poufnymi danymi tekstowymi, tylko wstawionymi do pdfa i na przykład kolumna w bazie danych z nazwą pliku do pobierania potem w php. Jak takie coś zabezpieczacie?
Jakie podstawowe błędy należy unikać, na co zwrócić uwagę?
Przewertuj sobie OWASP top 10
.
Szyfrowanie haseł wiadomo
Szyfrowanie - nie.
Hashowanie - tak.
Temat dość szeroki, ktoś mądrzejszy mógłby pewnie całą książkę w ramach odpowiedzi napisać.
a) Tak, te dane można po prostu zaszyfrować. Tak się robi często i to nie jest większy problem wydajnościowy.
Jedyne co, to musisz jakoś mądrze przechowywać klucz do szyfrowania.
- Cała komunikacja po https - wiadomo.
b) Co do plików to nie wiem, w sumie też by je można jakoś szyfrować ale tak się nigdy nie bawiłem.
@Limitless: na temat odpowiadaj w wątkach.
A jakby tak hashować te poufne pola nawet w sumie poprzez password_hash hmmm?
Polecam poczytać, co to jest w ogóle hashowanie i czym rózni się od szyfrowania, zanim zaczniesz rzucać pomysłami ;-)
Zabezpiecz serwer a nie dane, bo jak ktoś ci się dostanie do serwera to i tak odczyta klucz szyfrujący. Baze danych i tak przecież się ustawia tak, ze dostęp jest tylko ze środka po localhoście.
przecież w symfony są chyba z 4 działy poświęcone security, jest co czytać i wdrażać
Limitless napisał(a):
b) pliki pdf z poufnymi danymi tekstowymi, tylko wstawionymi do pdfa i na przykład kolumna w bazie danych z nazwą pliku do pobierania potem w php. Jak takie coś zabezpieczacie?
Katalogowi z plikami nadajesz unikalną nazwę: k0tm1p4z3szed1p0kl4w1turz3,
w .httaccess blokujesz możliwość bezpośredniego odczytania czegokolwiek z tego pliku,
zalogowanemu użytkownikowi z uprawnieniami serwujesz te pliki PHP-em, który je czyta, a później wyświetla.
Freja Draco napisał(a):
Katalogowi z plikami nadajesz unikalną nazwę: k0tm1p4z3szed1p0kl4w1turz3,
w .httaccess blokujesz możliwość bezpośredniego odczytania czegokolwiek z tego pliku,
zalogowanemu użytkownikowi z uprawnieniami serwujesz te pliki PHP-em, który je czyta, a później wyświetla.
Da się lepiej. wystarczy umieścić poza rootem i nadać odpowiednie uprawnienia, tak jak to robi każdy normalny framework.