ďťż
Podstrony
|
telcocafePiszę pewien system, i mam pytanko - czy jest możliwe wejście na stronę z podstawioną sesją? Mam system logowania, w sesji trzymam ID aktualnie zalogowanego usera i hasło. Czy ktoś może stworzyć sobie sesję i wejść na stronę z podstawioną? Wydaje mi się, ze tak, ale nie jestem pewien, i nie wiem czy mam lepiej zabezpieczyć system czy nie.Przy okazji zadam kolejne pytanko ;) Dodaję tekst do bazy i nie ma on PL znaków... Nie mam pojęcia czemu :( Pobieram text z textarea, przepuszczam przez nl2br i nie mam PL znaków :/ Użytkownik pawkow edytował ten post 30 styczeń 2007, 13:20 podaj znaki nie śćńź ale znaki UTF Ok, z bazą sobie już poradziłem... Teraz tylko to pytanie o sesje :) Odnośnie sesji, przy sprawdzaniu czy user jest zalogowany sprawdzam tylko czy istnieje $_SESSION['id']; Użytkownik pawkow edytował ten post 30 styczeń 2007, 13:49 Ja bym tak nie robił... Ostatnio BadSowa podał mi link do tematu na tym forum... Jako, że PHP nie zna to tam w linku był numer sesji i obszedłem zabezpieczenia... A może zrobić jeszcze jakieś ciastko z userem i zahashownym haslem? Byłoby już bardziej bezpieczniej.. A później można tak zrobić, że jak user nie jest aktywny przez jakiś czas albo wylogował się to wywalasz sesje i gitara... :) A może zrobić jeszcze jakieś ciastko z userem i zahashownym haslem? Byłoby już bardziej bezpieczniej.. A później można tak zrobić, że jak user nie jest aktywny przez jakiś czas albo wylogował się to wywalasz sesje i gitara... A nie lepiej po prostu do sesji wrzucić IP usera ? Wtedy tylko z danego kompa będzie można skorzystać z danej sesji ;) Ha Ale my mamy to samo IP :D Jesteśmy w sieci... Jak ktoś ma tak samo to co wtedy? :P Ha Ale my mamy to samo IP :D Jesteśmy w sieci... Jak ktoś ma tak samo to co wtedy? :P No to macie pecha :P A tak na poważnie - jakoś nic lepszego niż adres IP w sesji jako zabezpieczenie mi się nie kojarzy, a cookie z danymi usera jak to proponowałeś jest tak samo łatwo przechwycić jak dane sesji... Na upartego można kombinować i np. jeszcze rodzaj przeglądarki zapisywać (a nuż "hakier" użyje innej xD), ale IMHO to już gra nie warta świeczki bo raczej zbyt wiele takich sytuacji jak Wasza nie ma miejsca ;) Użytkownik .:DzIuDek:. ™ edytował ten post 30 styczeń 2007, 16:57 Też racja ale warto by było dodać do ciacha usera i haslo i jedna funkcja pozniej sprawdzac... Ale wtedy sesja nie miałaby sensu :P No i jeszcze dać ten IP to będzie super bezpiecznie.... :) Jak zdobędziesz czyjeś ciastka to będziesz mógł używać jego sesji. Dlatego koniecznie dodatkowo trzymaj ip usera, najlepiej z dodatkowymi danymi (przeglądarka/os/rozdzielczość ekranu :P). Wszystko to da się podstawić, ale używane jest jako dodatkowe zabezpieczenie, które kogoś zawsze zatrzyma. Jak coś się nie zgadza - wylogowanie /zniszczenie sesji/. A gdy sessionid jest wysyłany przez GET [czasem serwer świruje] to zdaje się sam link wystarczy. a może dać do sesji md5 hasła i na każdej stronie wymagającej autoryzacji sprawdzać, czy hasło której jest w sesji zgadza się z id zapisanym w sesji - nie do przebicia, tylko kradzież sesji... Strasznie zaplątałeś :D Nic nie rozumiem... Sprawdzać czy hasło w sesji jest hasłem w sesji? Czy ja dobrze rozumiem ? Ale jak bedzie haslo w sesji i bedziesz sprawdzal czy w bazie danych jest takie samo to masz racje... Czy o to ci chodzilo? tak, o to mi chodziło :) Co wy o ty myślicie ? tak, o to mi chodziło :) Co wy o ty myślicie ? Ja bym wrzucił to hasło do sesji tylko : a ) Zhaszowane md5 i sha1 - bo samo md5 zostało już rozpracowane i przeciętny PC sobie z nim poradzi... b ) Najlepiej byłoby gdyby przy ważnych operacjach prosić usera o ponowne podanie hasła - wtedy masz wręcz 100% pewność, że dany user to właśnie ten który trzeba... Użytkownik .:DzIuDek:. ™ edytował ten post 30 styczeń 2007, 17:49 Piszę pewien system, i mam pytanko - czy jest możliwe wejście na stronę z podstawioną sesją? Mam system logowania, w sesji trzymam ID aktualnie zalogowanego usera i hasło. Czy ktoś może stworzyć sobie sesję i wejść na stronę z podstawioną? Wydaje mi się, ze tak, ale nie jestem pewien, i nie wiem czy mam lepiej zabezpieczyć system czy nie. Tak czytam i czytam i doczytać się nie mogę, czy już taka odpowiedź padła... :D IMHO nie, nie można sobie sesji podstawić, ponieważ zawartość sesji jest na serwerze, tylko dostęp do niej jest chroniony dość losowymi ciągami (session id). Masz odpowiednie SID? Masz dostęp do danych. :) //Chyba, że chodzi Ci o takie postawienie, jak to opisał Einz~... Użytkownik pbnan edytował ten post 30 styczeń 2007, 18:52 czyli nie można podstawić sesji ? Czy to jest na pewno niemożliwe ? Muszę wiedzieć na 100% :) SID nikomu przecież nie podaję :) A jak jakiś user poda Swoje (nie wiem skąd je weźmie :P ) to już jego problem :) Dobrze zrozumiałem ? Użytkownik pawkow edytował ten post 30 styczeń 2007, 18:48 Znaczy tak: jeśli dostaniesz w łapy czyjeś ciacho z sesji, to w tym ciachu będzie zapisany SID, po którym serwer pozna, czy może udostępnić dane z sesji, czy nie (jej zawartość nie jest, o ilę się nie mylę, na komputerze klienta :)). Możesz to ciacho dać na swój dysk, żeby Ciebie wykrywało jako kogoś innego, ale nie musisz. Ale sam nie jestem "szpecem" w tej dziedzinie, nie krzyczcie na mnie, jeśli się pomyliłem :P (Idę o każdy zakład, że takj się stało, ech.) Ale muszę się zgodzić - nie problem usera, że podał swoje SID. Tyle że pewnie znów by było wieszanie psów na twórcy skryptu, za to, że go nie zabezpieczył przed takim czymś (jakby się dało)... Pomysł .:DzIuDek:. ™ jest całkiem ciekawy, ale dość frustrujący dla osób często i gęsto robiących takie same czynności :) Użytkownik pbnan edytował ten post 30 styczeń 2007, 19:05 Pomysł .:DzIuDek:. ™ jest całkiem ciekawy, ale dość frustrujący dla osób często i gęsto robiących takie same czynności smile.gif Jeszcze zależy o jaki typ strony chodzi - powiedzmy sobie szczerze - jeśli chodzi o jakąś prostą stronkę o małej ilości odwiedzin to nie ma co cudować z zabezpieczeniami - to tak jakby bezwartościowy przedmiot chować do sejfu, co innego w wypadku stron gdzie wazne jest bezpieczeństwo - jakies transakcje, podawanie poufnych danych itd. ale żeby się brać za takie serwisy to trzeba mieć spore doświadczenie i parę osób do pomocy. A co do przechowywania IP w sesji to należy pamiętać o jednym - jak ktoś ma zmienny IP (patrz np. Neostrada) to właściwie przy każdym wejściu na stronę będzie się musiał logować, co z pewnością może okazać się w dłuższej perspektywie nużące. Jak dla mnie najlepiej pozwolić użytkownikowi samemu określić poziom bezpieczeństwa jego konta - jeśli się bardzo o nie boi to niech się męczy z logowaniem co 24h, ale jeśli nie ma takich obaw to niech ma możliwość dostępu do sesji bez zapisywanego IP - wtedy nie musi się logować np. 2 tygodnie... Użytkownik .:DzIuDek:. ™ edytował ten post 30 styczeń 2007, 19:50 projekt jest raczej duży, ale mam ferie :) Już go piszę równe 39 godzin :) Wiecie co, może zrobimy tak - jak napiszę skrypt do końca, napiszę, że to wersja BETA i po kłopocie :) Poproszę userów forum o testy ;) Wtedy będę wiedział czy jest dobrze, czy źle. w sesji/cookie base64_encode(serialize($tablica)); Gdzie tablica zawiera ID usera oraz hasz sha1(TAJNY_KLUCZ + hasło + IP + USER_AGENT + host). Gdzie TAJNY_KLUCZ to jakiś tajny, ustawiony w skrypcie łańcuch. W bazie musisz zapisywać IP, USER_AGENTa i hosta (@gethostbyaddr($_SERVER['REMOTE_ADDR'])) z logowania ;) takie dość radykalne :P normalnie dla bezpiecznego skryptu starczy sha1(TAJNY_KLUCZ + hasło) if ((isset($_SESSION['id'])) && (!empty($_SESSION['id'])) && (num($_SESSION['id']))) teraz robie to tak... To chyba nie jest najbezpieczniejszy sposób. num() to funkcja która sprawdza, czy id jest liczbą :) gorący temat się zrobił ... teraz za posta pobieram opłatę 15 groszy :D Użytkownik pawkow edytował ten post 30 styczeń 2007, 21:02 |
|||
Sitedesign by AltusUmbrae. |