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

Auth system czy dobrze zrobione?

Aruba Cloud - Virtual Private Server VPS
0 głosów
185 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,730 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,730 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ź 449 wizyt
0 głosów
2 odpowiedzi 293 wizyt
+1 głos
1 odpowiedź 1,913 wizyt
pytanie zadane 30 września 2017 w Bezpieczeństwo, hacking przez zkkf56 Dyskutant (8,710 p.)

93,324 zapytań

142,323 odpowiedzi

322,389 komentarzy

62,652 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...