W ramach pracy inżynierskiej projektuję aplikację działającą na podobnej zasadzie, jak Wirtualny Dziekanat, tyle że dla innej organizacji - baza członków około 400 osób, z informacjami typu PESEL, opłaty itd. Aplikacja zostanie wykorzystana w praktyce, stąd postanowiłem w możliwie dużej mierze skupić się na kwestiach bezpieczeństwa i temu tematowi poświęcić dużą część swojej pracy, szczególnie, że do tej pory temat traktowałem raczej pobieżnie (z racji, iż moje projekty w PHP&MySQL były robione na nieco mniejszą skalę). Również kwestię Inżynierii Oprogramowania traktowałem pobieżnie i też chciałbym tą wiedzę poszerzyć w ramach pisania pracy, ale mniejsza o to. Oto co wyniknęło z dwóch dni studiowania Google w tym zakresie.
Aktualne założenia:
1. Solidnie zaprojektowana aplikacja, w oparciu o wzorzec projektowy MVC, w końcowym etapie przetestowana pod kątem SQL Injection, Persistent XSS etc.
2. Dostęp do danych (dodawanie / czytanie / usuwanie) tylko za pomocą odpowiednich procedur utworzonych w MySQL (swego rodzaju zabezpieczenie przed SQL Injection), odpowiedni system uprawnień użytkowników po stronie MySQL. Do tego filtrowanie danych po stronie PHP.
3. Zastosowanie certyfikatów SSL dla systemu (zapewne darmowy StartSSL), być może również autoryzacja po certyfikatach.
4. Zablokowanie indeksowania systemu w Google przez .htaccess.
5. Dodatkowe zabezpieczenie hasłem wybranych katalogów na serwerze, odpowiednie określenie dostępu do plików.
6. Dostęp do FTP tylko i wyłącznie przy użyciu klienta z szyfrowaniem haseł przy pomocy hasła głównego (w moim przypadku TC + szyfrowanie AES 256) i z zaznaczoną opcją łączenia się przy pomocy SSL (OpenSSL).
7. O regularnych backupach nawet nie wspominam.
Pytania:
1. Na które elementy w szczególności należy zwrócić baczną uwagę w trakcie pisania kodu?
2. Czy utworzenie takiego systemu na subdomenie strony głównej tej instytucji to dobry pomysł, czy raczej z tego zrezygnować? Może przenieść system na inny serwer z zablokowanym dostępem np. dla IP zza granicy? Skoro na tym samym serwerze będzie strona WWW oparta o Wordpressa.
3. Na koniec pytanie podstawowe - co jeszcze?
