![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jak można zabezpieczyć skrypt przez podmianą sesji (session poisoning) ![]() Proszę o porady, bo ostatnio jedna osoba weszła mi do panelu admina ;p -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
a skad wiesz ze to spowody dziury w sesji ci weszli do admina? Powodow moze byc multum. Jakiś konkretny powod by tak myslec?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
gościu który to zrobił napisał do mnie na gg
-------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
daj kod. bez kodu ciezko powiedziec
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
ustawiam sobie zmienną sesyjną i potem sprawdzam czy ma określonbą wartość
-------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 41 Pomógł: 3 Dołączył: 5.01.2008 Skąd: Czwarty Świat Ostrzeżenie: (0%) ![]() ![]() |
Ja w skryptach zabezpieczam się tak:
Kod <?php // Session session_start(); // Logs and user control if(!isset($_SESSION['ip']) || empty($_SESSION['ip'])) { $line = '['.date('d.m.Y H:i:s').'] IP: '.$_SERVER['REMOTE_ADDR'].' SESSION: '.$_COOKIE["PHPSESSID"]."\n\t\t".$_SERVER['HTTP_USER_AGENT']."\n"; $file = fopen('log.txt','a'); if($file) { fwrite($file,$line); fclose($file); $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; $_SESSION['id'] = $_COOKIE['PHPSESSID']; } } if($_SESSION['ip']!==$_SESSION['ip'] || $_SESSION['id']!==$_COOKIE['PHPSESSID']) { session_unset(); session_regenerate_id(); } ?> Kod sprawdza, czy jest to nowa sesja. Jeśli tak, zapisuje logi (data, IP usera, ID sesji i dane o przeglądarce do pliku log.txt. Następnie sprawdza, czy IP usera zgadza się z IP zapisanym w sesji oraz ID sesji zgadza się z tym wysłanym w ciasteczku. Jeśli coś jest nie tak, zmienia userowi identyfikator, a ten nawet nic nie zauważa. Pozdrawiam, Leo van Damon -------------------- Mój blog: http://test.dragonsheart.eu/
DH Corp: http://www.dhcorp.pl/ |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
i to rozwiązanie na pewno pomoze przed atakami zwiazanymi z podmiana sesji?
![]() -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Następnie sprawdza, czy IP usera zgadza się z IP zapisanym w sesji oraz ID sesji zgadza się z tym wysłanym w ciasteczku. Jeśli coś jest nie tak, zmienia userowi identyfikator, a ten nawet nic nie zauważa. Pozdrawiam, Leo van Damon Jak na razie to Twój kod sprawdza czy IP w sesji jest identyczny z ... IP w sesji; jarmiar przyłączam się do posu wyżej o jakiś kod do wglądu. pozdrawiam gino |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
może tak:
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
a co z session poisoning?? co poradzic na to?
-------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
session_use_cookies_only, regeneracja id sesji, kontrola ip i zabezpieczenie przed wstrzyknięciem szkodliwego kodu w treści wysyłane przez userów powinno spokojnie, a nawet bardziej niż spokojnie wystarczyć.
Oczywiście, jeśli w grę nie wchodzi współdzielony katalog z sesjami. Zawsze można się jeszcze posiłkować session_save_path() Ten post edytował Shili 15.07.2008, 13:22:23 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 42 Dołączył: 22.07.2007 Skąd: /dev/random Ostrzeżenie: (0%) ![]() ![]() |
Do tego może się jeszcze przydać ciastko zawierające identyfikator sesji z atrybutem HttpOnly.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki za rady
![]() -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Oczywiście, jeśli w grę nie wchodzi współdzielony katalog z sesjami. Zawsze można się jeszcze posiłkować session_save_path() mógłbyś konkretniej? a co gdy w grę wchodzi współdzielony katalog z sesjami? |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mogłabyś.
W przypadku takiej konfiguracji, gdzie konta mają dostęp do tych samych katalogów sesyjnych istnieje możliwość dokopania się do sesji z innego konta. W przypadku domyślnych ustawień serwera dochodzi do głosu także directory traversal, ale to trochę inna bajka. Ten post edytował Shili 15.07.2008, 19:26:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:13 |