[MySQL][PHP]Zabezpieczenie panelu administratora, Wystarczająco? |
[MySQL][PHP]Zabezpieczenie panelu administratora, Wystarczająco? |
26.03.2019, 16:44:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 8.09.2011 Ostrzeżenie: (0%) |
Witam.
Tworzę małą portalopodobną stronę, na której jest możliwość rejestracji, dodawania contentu itd. Dla wygody zarządzania zrobiłem panel admina. W bazie użytkownik ma kolumnę 'id_rangi' (ranga admina to 0). Przy logowaniu pobieram do $_session id_rangi i na stronach panelu sprawdzam:
Sesje zabezpieczyłem funkcją:
Chodzi głównie o to, by dane użytkowników (Imię, Nazwisko, Nr. telefonu, Adres) nie dostały się w niepowołane ręce. Czy poza ustawieniem prawidłowo praw do plików i powyższymi 'zabezpieczeniami' można coś jeszcze zastosować, by ukrócić starania wścibskiego użytkownika z Kali Linux? Ten post edytował TimeMaster 26.03.2019, 16:50:18 |
|
|
26.03.2019, 19:26:04
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Nazwy pliku nikt nie pozna wiec....
Podajeesz trzy rozne sesje i nic wiecej. Zrob jakas funkcje ktora wywolujesz za kazdym razem. Sprawdzaj czy zarejestrowana sesja rowna jest wartosci z bazy a nie jak to teraz !== 0 Czyli: Kod if ($_SESSION['id_rangi'] != $AdminDetails) { //exit; } dalej W pierwszym przykladzie podajesz jedna sesje w drugim niby jakies zabezpieczenie. Tylko czego ? Ten post edytował dublinka 26.03.2019, 19:43:33 -------------------- |
|
|
26.03.2019, 23:14:23
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 8.09.2011 Ostrzeżenie: (0%) |
Cytat W pierwszym przykladzie podajesz jedna sesje w drugim niby jakies zabezpieczenie. Tylko czego ? Drugie zabezpieczenie jest przed linkiem z PHPSESSID |
|
|
27.03.2019, 07:37:41
Post
#4
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Drugie zabezpieczenie jest przed linkiem z PHPSESSID Obawiam sie ze Cie nie rozumiem. W tamtym przkadzie sprawdzasz jakas sesje a czym ona jest to tylko ty wiesz. Nastepnie masz kolejna sesje z ip i sprawdzasz ja ze zmienna globalna SERVER i jesli da rozne to wysw odpowiedni komunikat. Jedyne co robisz to regenerujesz id sesji ale to zadne zabezpieczenie. Skup sie na zapytaniach do bazy bo tym moze ktos se dostac do detali. Jesli chodzi o SQL injection to jak korzystasz z mysqli to korzystaj z mysqli, bind_param i prepare. Pamiętaj jeszcze o o atakach XSS. https://php.net/manual/en/mysqli.prepare.php Jesli nie chcesz aby ktos Ci narobil balaganu to najprostszym rozwiazaniem jest trzymanie waznych plikow poza folderem "public_html" ; umiesc te pliki w jakims jeszcze jednym kat i daj go wyzej w hierarchii (wyjdz z kat public_html) a same pliki includnij. Ten post edytował dublinka 27.03.2019, 07:59:41 -------------------- |
|
|
27.03.2019, 13:16:13
Post
#5
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 8.09.2011 Ostrzeżenie: (0%) |
Sprawdzam IP z sesji i ze zmienną SERVER by uniknąć wykradania sesji. Wystarczy na tym forum wejść w narzędzie 'zbadaj element', zakładka DANE (w FF, nie wiem jak w innych) i mamy forum_session_id... Teraz na nieogarniającej nic osobie można za pomocą phishingu wyłudzić id sesji i użyć jej w hijackingu - stąd zabezpieczenie sprawdzające IP zapisane w sesji i IP użytkownika. Teraz pytanie, czy jest to jakiekolwiek zabezpieczenie (dla amatorów najpewniej tak). Nie potrzebuję zabezpieczeń rodem z aplikacji bankowych, wolę być świadomy i w jakimś stopniu przygotowany. Raczej nie spodziewam się, że przechowywane dane będą łakomym kąskiem. Jednak będę spał spokojniej, wiedząc, że hacker zrezygnował z wydobycia danych przez stronę/serwer/bazę i stwierdził, że łatwiej będzie je wyciągnąć bezpośrednio od użytkownika.
|
|
|
27.03.2019, 15:51:43
Post
#6
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Sprawdzam IP z sesji i ze zmienną SERVER by uniknąć wykradania sesji. Wystarczy na tym forum wejść w narzędzie 'zbadaj element', zakładka DANE (w FF, nie wiem jak w innych) i mamy forum_session_id... Teraz na nieogarniającej nic osobie można za pomocą phishingu wyłudzić id sesji i użyć jej w hijackingu - stąd zabezpieczenie sprawdzające IP zapisane w sesji i IP użytkownika. Teraz pytanie, czy jest to jakiekolwiek zabezpieczenie (dla amatorów najpewniej tak). Nie potrzebuję zabezpieczeń rodem z aplikacji bankowych, wolę być świadomy i w jakimś stopniu przygotowany. Raczej nie spodziewam się, że przechowywane dane będą łakomym kąskiem. Jednak będę spał spokojniej, wiedząc, że hacker zrezygnował z wydobycia danych przez stronę/serwer/bazę i stwierdził, że łatwiej będzie je wyciągnąć bezpośrednio od użytkownika. https://stackoverflow.com/questions/1223340...ssion-hijacking tutaj ma sz mysle wystarczajace wyjasnienie. Jest napisane ze myki z ip nie sa dobrym rozwiazaniem. Po pierwsze IP sa teraz w wiekszosci dynamiczne. -------------------- |
|
|
27.03.2019, 16:23:23
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Zamiast sesji wykorzystaj szyfrowany token JWT, a zamiast takiego smieciowego kodu jakiś microframework typu Slim.
-------------------- |
|
|
28.03.2019, 06:17:44
Post
#8
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 8.09.2011 Ostrzeżenie: (0%) |
@dublinka Dzięki wielkie
@viking Myślałem nad microframeworkiem do tego projektu, a nawet o Wordpressie ale stwierdziłem, że napiszę w czystym php, żeby podszlifować umiejętności |
|
|
28.03.2019, 07:11:10
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
To jednego jestem pewien. Stosując się do pewnych dobrych wzorców (FW mocno wykorzystują PSR) dużo więcej się nauczysz niż klepiąc takie funkcje jak ta wyżej.
-------------------- |
|
|
28.03.2019, 08:21:16
Post
#10
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Jest jakis spospb na usuniecie poprzednjego id sesji ? Bp session_regenerate_id() tylko generuje nowe ale stare pozostaja
-------------------- |
|
|
28.03.2019, 08:23:23
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
session_regenerate_id ([ bool $delete_old_session = FALSE ] ) : bool
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:22 |