- Czy używając PDO, zamiast MySQLi jest sens filtrować formularze wysłane przez użytkownika?
A co ma jedno do drugiego? Zawsze jest sens pilnować bezpieczeństwa tego, co przychodzi z zewnątrz, powiedziałbym nawet że to konieczność i obowiązek.
- Czy jest możliwość ograniczenia ilości zapytań do jednej tabeli? Np. do tabeli 'users' maks 1 zapytanie (logowanie/rejestracja), tak żeby się nie dało pobrać wszystkich userów
Na poziomie bazy to nie ma sensu (przecież na raz może próbować rejestrować się 10 osób) i nie za bardzo sobie to wyobrażam. Nie będzie się dało pobrać wszystkich userów jeśli nie dasz nigdzie takiej opcji. Przecież użytkownik sam nie wysyła zapytań do bazy, robi to aplikacja, którą można odpowiednio oprogramować.
- Czy ktoś może 'podglądnąć' mój skrypt PHP, jeśli po wpisaniu go w przeglądarkę przenosi go do innej podstrony?
Przy dobrej konfiguracji serwera (i zakładając że sam kod nie ma jakichś luk, które mogłyby zwrócić pliki z kodem) nie ma opcji, aby wyświetlił się kod PHP.
- Aktualne wersje SQL i PHP
Hm? Używanie możliwie najnowszych wersji oprogramowania raczej wydaje się logiczne, nie wiem o co Ci tu chodziło.
- Używanie osobnego formularza do logowania przez administratorów
Nie wiem jakie to może mieć znaczenie czy to będzie jeden formularz czy 10 osobnych. Bardziej się liczy ich działanie, czy będą ewentualnie jakieś różne elementy dla poszczególnych poziomów dostępu czy nie.
- Ukrywanie błędów z bazy danych, podając tylko własny kod (kody wymyślone przez siebie, aby w razie czego samemu łatwiej znaleźć błąd)
W ogóle nie podawałbym informacji o tym co się zepsuło. Po prostu 500 i jakiś ładny dla użytkownika komunikat, a pełne treści błędów powinny być gdzieś logowane, abyś mógł Ty czy ktoś inny obsługujący aplikację to sprawdzić.
- Oczywiście HASH haseł, a w późniejszym etapie może i dodanie 'soli'
Przy obecnych algorytmach (bcrypt, argon) dodatkowa sól jest już raczej zbędna.
- Recaptcha przy formularzach logowania/rejestracji
Może się przydać jeśli boisz się spamu.
- Ograniczenia czasowe do edycji swojego konta w ów serwisie (np. 1 raz na 20 sekund)
No można, ale jeśli ktoś będzie chciał męczyć serwer to napisze skrypt, który będzie odpytywał co te 20 sekund i i tak będzie męczył. Więc tu trzeba pomyśleć nad sensem takich rzeczy, aby to się nie stało uciążliwe dla użytkownika i jednocześnie nic nie wnoszące dla spamera czy jakiegoś bota.
Co jeszcze możecie dodać, tak, aby było w pełni bezpiecznie?
Dużo by tu wymieniać. Błąd można popełnić z każdej strony: od tego, że źle skonfigurujesz serwer i wyciekną dane do bazy, przez różnego rodzaju ataki, po błędy w kodzie i inne zdarzenia. Nikt Ci nie poda listy rzeczy, którą sobie odhaczysz i będzie super, bo zawsze może coś jeszcze wyjść.