• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Auth system czy dobrze zrobione?

Object Storage Arubacloud
0 głosów
140 wizyt
pytanie zadane 27 listopada 2017 w Bezpieczeństwo, hacking przez revizor451 Obywatel (1,930 p.)

Witam czy taki kod jest bezpieczny ? Chodzi o panel admina

if($_SESSION["ADMIN"]) {

SHOW PANEL

}

else {

NIE MASZ UPRAWNIEN

}

 

Ogólnie sesji chyba nie da się podmienić?  

 

2. Pytanie czy ogoólnie jeżeli osoba korzysta z PDO, to mogę się jakoś włamać? czy tylko jak mysql_* bez bindowania

1 odpowiedź

+1 głos
odpowiedź 27 listopada 2017 przez Chess Szeryf (76,710 p.)
wybrane 27 listopada 2017 przez revizor451
 
Najlepsza

https://stackoverflow.com/questions/7616265/session-injection

O ile mi wiadomo, nie można podmienić sesji, ponieważ jest ona server-side, a nie client-side. Dodatkowo, jeśli ta sesja jest przechowywana na serverze, to user nie ma jak wstrzyknąć swojego kodu i napisać coś takiego:

$_SESSION['my_session']=false;

// chcę podmienić sesję na true, by się móc zalogować

curl_injection_session($curl_handle,'my_session',true);

// to jest pseudokod, funkcja powyżej nie istnieje

Nie ma takich funkcji w ogóle, nie da się wstrzyknąć (SESSION INJECTION), po to, to zostało wymyślone, aby nie dało się podmieniać wartości sesji SESSION. Po pierwsze, to trzeba byłoby znać zapewne nazwę sesji, a po drugie to musiałoby być stworzone coś, co pozwoliłoby na wstrzyknięcie własnych danych do kodu server'a, by podmienić wartość. A tej jak się nie pozwoli np. poprzez bazę danych, to nie ma się jak zmienić. Co innego z danymi przesyłanymi protokołem POST i GET, to są zmienne serverowe (transferowe), a nie daną wartością, którą ma zrozumieć tylko server. To tak jakbyś chciał podmienić zwykłą zmienną, nie sesyjną, np.: ($var = 5;). Nie da się tego zrobić. Musiałbyś specjalnie na to pozwolić, np. poprzez skrypt z plikami, który podmieniłby twój kod na user'a.

 

komentarz 27 listopada 2017 przez revizor451 Obywatel (1,930 p.)
Tak myślałem. Dzięki ; )
komentarz 27 listopada 2017 przez Chess Szeryf (76,710 p.)

Nawet jest takie specjalne zabezpieczenie, które wygląda tak:

session_start();

Oznacza to, że włączasz używanie zmiennych sesyjnych, tylko na tych stronach, podstronach, na których chcesz, a nie na wszystkich. Dostęp do tych zmiennych masz dopiero po zainicjalizowaniu tej linijki wyżej, by przez przypadek nie były widoczne te zmienne w całej witrynie, tylko na gdzie trzeba (oszczędność pamięci).

http://php.net/manual/en/function.session-start.php

PDO i mysqli to odrębny byt i nie ma nic do zmiennych serverowych.

Podobne pytania

0 głosów
1 odpowiedź 365 wizyt
0 głosów
2 odpowiedzi 192 wizyt
+1 głos
1 odpowiedź 1,529 wizyt
pytanie zadane 30 września 2017 w Bezpieczeństwo, hacking przez zkkf56 Dyskutant (8,710 p.)

92,543 zapytań

141,386 odpowiedzi

319,493 komentarzy

61,929 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...