![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam , napisałem sobie skrypt logowania i nie wiem czemu ale wydaje mi się, że jest strasznie cienko zabezpieczony , tzn jest to mój drugi skrypt (po próbach ) i nie spodziewam się skryptu nie do obejścia ale takiego chociaż dość dobrego , możecie zerknąć na to i dać swoją opinie ? (tylko bądźcie wyrozumiali dla mnie, proszę (IMG:style_emoticons/default/smile.gif) (wiem, że jest do tego dział ale ja bym w razie czego chciał jakąś pomoc co do tego skryptu, tzn jakieś inne sposoby czy coś ) )
(To jest sam skrypt który otrzymuje dane z formularza, przetwarza i loguje ) Ten post edytował kamillo121 24.08.2009, 15:30:14 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zabezpiecz hasło funkcją md5
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
A czytałem w innych tematach tutaj, że w nowych skryptach tego się już raczej nie stosuje , ktoś to tak napisał, (jak znajde to podam link)
Ten post edytował kamillo121 24.08.2009, 14:55:00 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A czytałem w innych tematach tutaj, że w nowych skryptach tego się już raczej nie stosuje , ktoś to tak napisał, (jak znajde to podam link) Przecież tam mowa o braku filtracji loginu... Co hasła bezpieczniejsze jest sha1 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Fifi209 dzięki , a takie pytanko, jak zastosuję to przy haśle to czy będzie w miarę bezpieczny ? czy jeszcze gdzieś są "dziecinne luki" ? (tylko błagam, nie odsyłaj mnie do tematu w php o bezpieczeństwie bo go czytałem )
Ten post edytował kamillo121 24.08.2009, 14:59:08 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Jeśli mowa o hasłach to niekoniecznie musi być sha-1. Może być md5... byle miało salt (IMG:style_emoticons/default/smile.gif) Bez tego md5 mozna "wykoleić" używając "rainbow tables". Najbezpieczniej by było, gdybyś przy rejestracji do bazy wrzucił już zakodowane hasło i w sesji też je trzymał zakodowane. Porównać zawsze z bazą możesz wtedy i nie leci ono w postaci jawnej nigdzie. A sesje część danych przesyłają między stronami poprzez cookies. Jeśli znajdzie się tam też hasło w postaci jawnej to masz wtedy poważną lukę w bezpieczeństwie.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czyli tak , narazie zmieniam przy rejestracji, że by wrzucało do bazy hasło przepuszczone przez sh1 , przy logowaniu zmieniam, żeby porównało hasło przepuszczone przez sh1 od formularza z tym z bazy , a teraz pytanie do ciasteczek ..... Na stronie nie potrzebny mi będzie dużo danych o użytkowniku które muszę często porównywać , jest to tylko login i lvl_acc , więc jest sens to pakować w ciasteczka ?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat hasło i w sesji też je trzymał zakodowane w jakim celu ma trzymać hasło w sesji ? (IMG:style_emoticons/default/smile.gif) login w zupełności wystarczy. Ten post edytował sniffer32 24.08.2009, 15:22:00 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
No ja hasła, nigdzie nie potrzebuje , do indentyfikacji tylko potrzebuje loginu i lvl_acc , tylko ja jakoś nie chce się za bardzo w ciasteczka bawić ...
Myślę , że same sesje wystarczą nie ? I powie ktoś wreście czy skrypt może być dość bezpieczny ? tylko teraz mam przepuszczane przez sha1 haslo jeszcze (IMG:style_emoticons/default/smile.gif) Odpowiedzcie proszę i daje Wam spokój (IMG:style_emoticons/default/haha.gif) Ten post edytował kamillo121 24.08.2009, 15:30:37 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
znaczy że przy haśle otrzymanym od użytkownika przy funkcji sha1 mam coś swojego jeszcze wpisać ?
A mógłbyś wytłumaczyć po co to ? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a wiesz co to są "tęczowe tablice" ? (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
NIe ale przewertowałem na szybcika google i coś w stylu do odgadywania haseł w md5, sha1 idt ?
Ten post edytował kamillo121 24.08.2009, 15:42:08 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
po dodaniu soli nic nie da skopiowanie hash'u z bazy i wklejenie go do wyszukiwarki (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
a ta sol to może byc np :
$liczby = range(1,24); $klucze = array_rand($liczby, 6); I klucze wstawić za sól ? Tylko że to w tablicy to potem tylko bym wstawił np klucze[1] za sól i tyle Dzięki wszystkim , wiem, że pomoc udzielana mi to istna katorga ale kto pyta nie błądzi (to samo z używaniem google (IMG:style_emoticons/default/haha.gif) ) .. Dzięki wielkei.. ( a jednak chyba nie może być losowa liczba bo wtedy nie porówna (IMG:style_emoticons/default/sad.gif) ) Ten post edytował kamillo121 24.08.2009, 15:47:38 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a jak później porównasz hash z logowania z hashem z bazy ? (IMG:style_emoticons/default/tongue.gif) sól musi być stała..
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
No już teraz jak spróbowałem tego użyć to już wiem, że sie nie da (IMG:style_emoticons/default/haha.gif) ...
Dzięki (IMG:style_emoticons/default/smile.gif) Ten post edytował kamillo121 24.08.2009, 15:49:16 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 21 Dołączył: 21.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat haslo powinno sie przesylac juz zakodowane... chcesz co przeładowanie sprawdzać w bazie czy wszystko się zgadza? (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Sól, salt czy jakkolwiek to nazwać a o czym w poprzednim poście pisałem jest stałym dodatkiem do niejawnej wersji hasła czy co tam byś chciał kodować.
Są to ciągi znaków, które się dokleja do danej usera czy to na początek, koniec lub z obu stron i dopiero przeprowadza hashowanie. W ten sposób nawet słabe hasła można uczynić mocnymi. Sprawia to także, że znając czyjeś hasło i znając funkcje jakiej użyto nie wygenerujesz tego samego hasha. A znając hash i nawet gdybyś go rozgryzł do postaci jawnej, to nie wiesz która część w ciągu znaków jest prawidłowym hasłem usera. Tyle że sha-1, md5 i wiele innych jest algorytmami szyfrującymi jednostronnymi. A więc możesz zaszyfrować, ale nie ma funkcji deszyfrującej do nich. Ważne by sól była stała, bo inaczej hashe nie będą się zgadzały. Dlatego daje się do nich kombinacje liter małych i dużych, znaków by utrudnić "złamanie" hashy przez "tęczowe tabliczki" Ze zmiennymi sesji... mae culpa... nie interesowałem się nigdy zbytnio czy są po stronie serwera czy klienta. I tak zazwyczaj mialem wszystkie krytyczne dane w hashach (IMG:style_emoticons/default/biggrin.gif) Co do sprawdzania to aż tak rygorystycznie nie trzeba, ale co jakiś czas można (IMG:style_emoticons/default/tongue.gif) Gdy zaś wspominałem o przechowywaniu w sesji loginu i hasła miałem na myśli sytuację, gdy akurat login nie musi być polem jednoznacznie identyfikującym. Tak naprawdę unikatowa jest kombinacja loginu i hasła i dopiero taki warunek trzeba sprawdzać pod kątem kolizyjności w bazie. Może być wielu userów o tym samym loginie ale różnych hasłach. Jedynie z wygody ustawia się na to pole wartość unique by sobie mniej roboty robić i nie wprowadzać zamieszania dla pozostałych użytkowników :] Czyli dla wygody nas, adminów, tak naprawdę, a nie dlatego, że tak musi być (IMG:style_emoticons/default/smile.gif) Oszczędza nam to dodatkowego sprawdzenia hasła i tyle (IMG:style_emoticons/default/winksmiley.jpg) Zmiana loginu, nawet na już istniejący, po założeniu konta w takim wypadku to pikuś i użytkownik sam to może zrobić, jedynie trzeba sprawdzać unikatowość kombinacji w formularzu zmiany loginu. |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.09.2003 Skąd: z Gdyni Ostrzeżenie: (0%) ![]() ![]() |
Login użytkownicy powinni mieć unikatowy nie ze względu na wygodę koderów, ale ze względów praktycznych - jakbyś miał kilku użytkowników o tym samym loginie na tym forum to jak myślisz, czy miłe byłoby sprawdzanie, który thek w którym temacie pisze? Chyba nie.. =p
|
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
W ten sposób nawet słabe hasła można uczynić mocnymi. Nieprawda... Jak z hasła: god Zrobisz mocne hasło doklejając sól? Przecież jak ktoś będzie jechał na brutal-force to w końcu trafi a weryfikacja przecież przebiega tak: hasło + sól gdzie hasło jest zmienną a sól stałą... Tyle że sha-1, md5 i wiele innych jest algorytmami szyfrującymi jednostronnymi. A więc możesz zaszyfrować, ale nie ma funkcji deszyfrującej do nich. Nie szyfrowanie a hashowanie, to jest różnica. Ze zmiennymi sesji... mae culpa... nie interesowałem się nigdy zbytnio czy są po stronie serwera czy klienta. I tak zazwyczaj mialem wszystkie krytyczne dane w hashach (IMG:style_emoticons/default/biggrin.gif) Idealne rozwiązani... Dane krytyczne? (co to?) A np. dane osobowe? Wpiszesz komuś do bazy nazwisko jako hash? |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wiecie co ,nie żebym spamował czy coś ale z tego tematu dowiedziałem się więcej niż z tematu o bezpieczeństwie , oczywiście odnośnie tego zagadnienia (IMG:style_emoticons/default/smile.gif)
Jeszcze raz wszystkim dziękuję , przemieniłem rejestracje logowanie i możliwość zmieny hasła ... Unikatowe mam login i email ... Znaczy login to tak tylko sprawdzaniem zapytaniem sql dzięki czemu nie będzie tych samych loginów ...(chyba (IMG:style_emoticons/default/haha.gif) ) Jeszcze jak ktoś by mógł coś nakreślić co do sesji , tzn już pytałem o to kiedyś , wertowałem wertowałem i ? znalazłem kilka tematów , jak i artykułów w google lecz dalej nie wiem .... Jak mam zabezpieczyć sesje , nie chce Was prosić o gotowe rozwiązanie bo wiem czym by się to skończyło tylko np .. O jakieś artykuły Waszym zdaniem dobre albo jakiś kursik .. Tylko , żeby było dość opisane a nie po jedno zdanie na każde zagadnienie ... Bardzo bym Was prosił o to ... Stronę, którą próbuję sklecić to nie ma być co prawda bunkier na notatki o tajnych misjach rządu Amerykańskiego ale jakieś lekkie zabezpieczenia się chyba przydają ... Czytałem też coś , że jest dobrze napisać własną klasę do obsługi sesji , ale dla mnie to chyba za wysoka poprzeczka więc chciałbym tylko jakieś mniejsze zabezpieczenia sesji .. Proszę was (srry, że się tak rozpisałem ) Ten post edytował kamillo121 24.08.2009, 19:49:58 |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Napisać session handlera, masz nawet artykuł o tym na wortal.php.pl
|
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki (IMG:style_emoticons/default/smile.gif)
Już się wgłębiam .... |
|
|
![]()
Post
#26
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Shlizer... o przypadku dla userów napisałem
Cytat i nie wprowadzać zamieszania dla pozostałych użytkowników Ataki brute-force przerywa się szybko i sam o tym zapewne wiesz. Blokada wykonywania po X nieprawidłowych próbach. W debianie masz po 3 błędnych logowaniach minimum 5 minut wyłączoną możliwość logowania na danego usera. To samo się w części portali stosuje. Po X próbach Y minut niemożliwości zalogowania. Może i się użytkownik wściekać, że nie może dostać do serwisu, ale skuteczność brute-force spada w sposób przeogromny. Dane krytyczne to dla mnie dane od których zależy bezpieczeństwo użytkownika lub serwera. W tym portalu jest dla użytkownika nim tylko hasło, ale w serwisach z danymi osobowymi już poważnie bym zastanawiał się nad stosowaniem kryptografii. Oczywiście tylko w przypadku jeśli mają one nie być jawne, bo przecież na N-K danych osobowych multum, ale akurat ten serwis ma nieco inny profil działalności. Jednak w przypadku zastosowań biznesowych kryptografię bym próbował implementować. Co do hasha i szyfru to zastosowałem skrót myślowy. Hash można bowiem uznać za szyfr, gdyż z ciągu znaków takiego samego otrzymujemy ten sam ciąg wynikowy. Dlatego napisałem, że jest to szyfr jednostronny. Nie ma bowiem algorytmu potrafiącego z hasha odtworzyć ciąg wejściowy. Zauważ jednak, że przechowuje on mimo wszystko informację o ciągu wejściowym, gdyż użycie tego samego algorytmu pozwala metodą porównywania uzyskać ostatecznie ciąg wejściowy. Jest to więc dla mnie szyfrowanie danych w pewnym stopniu. Inna sprawa, że ten sam hash teoretycznie może być efektem różnych danych wejściowych. Stąd nazwa "skrót" dla hash jest jest jak najbardziej adekwatna. |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
EEE, że znowu zmienię temat rozmowy ..
Przeczytałem ten artykuł tylko mam takie pytanie .. Jak mam w tym miejscy wpisać dane dotyczące połączenia
Tam w db_config Tam gdzie jest zmienna $session_table to mam dopisać żeby tak to wyglądało $session_table="nazwa_tabeli" ?> I potem tak patrze, tam, niżej ktoś napisał, że autor powstawiał bugi , to prawda ? Ten post edytował kamillo121 24.08.2009, 20:31:46 |
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#29
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:style_emoticons/default/sad.gif) Nie mam pojęcia jak to dostosować , mam nadzieje, że to ten kurs
http://wortal.php.pl/phppl/wortal/artykuly...i/implementacje Zna może ktoś coś łatwiejszego , lub szerzej wytłumaczonego ? Ten post edytował kamillo121 24.08.2009, 20:46:15 |
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ale ta klasa jest pod php4, phpclasses.org , google, szukaj pod frazą = session handler php5 class (IMG:style_emoticons/default/smile.gif)
Ten post edytował sniffer32 24.08.2009, 20:50:40 |
|
|
![]()
Post
#31
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 6 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
No trudna, dzięki za pomoc ale nie umiem ... Za tępy na to jestem narazie (IMG:style_emoticons/default/smile.gif) (pobrać pobrałem (IMG:style_emoticons/default/haha.gif) )
Dzięki jeszcze raz (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 12:01 |