Wyrażenie regularne w PHP

0

Witam.Jeśli ktoś mógłby mi w tym pomóc byłbym wdzięczny.Problem polega na tym, że nie wiem co dopisać do wyrażenia regularnego dotyczącego obu haseł,żeby oba hasla nie przyjmowaly takich znakow: ' " / \ .Ponizej podaje wyrażenie regularne do którego prosilbym o dopisanie tego "czegos" ;) :

if (ereg ("[^a-zA-Z0-9]", $haslo))
echo "Podałeś nieprawidłowe haslo";

if (ereg ("[^a-zA-Z0-9]", $haslop))
echo "Podałeś nieprawidłowe haslop
";

if($haslo!=$haslop)
echo "Hasla nie sa takie same
";

Pozdrawiam i czekam na odpowiedzi.

0
  1. po co sprawdzasz oba hasla?? Sprawdz poprawnosc pierwszego, a pozniej czy sa takie same ;)

bartolomeusz napisał(a)

żeby oba hasla nie przyjmowaly takich znakow: ' " / \ .

bartolomeusz napisał(a)

if (ereg ("[^a-zA-Z0-9]", $haslo))
echo "Podałeś nieprawidłowe haslo";
yyyy ale jak w hasle podasz ktorys z tych znakow to zostanie wyswietlony komunikat.... wiec nie wiem o co chodzi

0

if(ereg("[^a-zA-Z0-9]+", $haslo)) ??

0
Adamo napisał(a)

if(!ereg("[^a-zA-Z0-9]+", $haslo)) ??

0

Witam.Sprubuje jeszcze inaczej ;) .Mam pole input typu text w ktorym musze wpisać haslo które może zawierać wszytkie znaki oprócz: / \ " i ' .Musze napisac do tego odpowiednie wyrazenie regularne.Poniżej podaje wyrażenie regularne do którego trzeba dopisać to "coś".Pozdrawiam.

if(ereg("[^a-zA-Z0-9]", $haslo))

Podaj haslo:<input type="text" name="haslo">

0
if(ereg("[/\\\"']", $haslo)) {}
0

Dzieki Marooned o to mi chodzilo [browar] Pozdro. :)

0

domyslam sie, ze chodzi o sprawdzanie hasla w bazie i po to te zastrzezenia dot ukosnikow?

sugerowalbym przetrzymywanie hasla jako hash md5 - nie zawiera zlych znakow (tylko male litery i cyfry) oraz ma szereg zalet (np. ktos po wlamaniu do bazy i tak nie odczyta hasel)

0

Jak to nie odczyta. Pewności nie masz.
Jest wiele stron typu http://us.md5.crysm.net/
Jasne, że mają znikomy procent wszystkich skrótów, ale jak testowałem.. to sporo haseł, które kiedyś używłem, tam są.

Dlatego jeszcze lepszym rozwiązaniem jest md5(md5(haslo) + md5(seed)) gdzie seed losujemy przy rejestracji - tak jest np. na IPB

0

Marooned - to zależy, co chce się z tego hasła wyciągnąć. Do zalogowania może wystarczyć, ale do dowiedzenia się, jakie jest hasło faktycznie - nie zawsze pomoże - wiele ciągów znaków generuje ten sam hash MD5.

0
Marooned napisał(a)

Dlatego jeszcze lepszym rozwiązaniem jest md5(md5(haslo) + md5(seed)) gdzie seed losujemy przy rejestracji - tak jest np. na IPB

Ciekawe, nie spotkałem się z tym, ale mam pytanie co do seed-a, gdzie go przechowujesz? W bazie, czy user musi go podać przy logowaniu? Jeśli w bazie to chyba równie dobrze wystarczyłoby md5(md5(haslo)), choć oczywiście wszystkie działania arytmetyczne w tym miejscu utrudnią życie włamywaczowi :)

0

w bazie
tutaj jest to wyjaśnione jak to robią na IPB

szczerze, to nie zastanawiałem się jak bardzo wpłyta to na bezpieczeństwo - dobry temat do dyskusji [można przenieść do osobnego wątku]

ale [zakładamy, że mamy końcowy hash] przy uzyciu md5(md5(haslo)) mając obszerną bazę hashy można dostać hasło (jedno z możliwych) natomiast przy użyciu tego z IPB nie znając salt nie znajdziemy hasła pierwotnego - taka różnica

0

Wydaje mi się, że jeśli zakładamy, że znamy końcowy hash, to powinniśmy założyć też że znamy salt (lub md5(salt)). W końcu prawie na pewno będą przechowywane w tym samym miejscu.

Z drugiej strony zawsze to kolejne utrudnienie dla włamywaczy, chyba muszę przerobić logowanie w paru miejscach. Dobre jest to, że po stronie użytkowników nic się nie zmienia, niczego nie zauważą :)

0

ehhh, a nie prosciej jest przetrzymywac hash hasla jako crypt??
A nie kozystac z IPB czy innych dziwnych... na wiekszosci serwerach (a z tego co wiem teraz chyba na wszystkich linuxowych) kozysta sie crypta.
hasla maja ladna postac $1$9cffe91e$mieSks4PypfPNwu6JIX2Y0 i jak na razie uwaza sie je za bezpieczne hashe.
Sprawdzac poprawnosc i generowac jest banalnie prosto, a z przechowywaniem pozniej nie ma problemu (bo nie musisz osobno trzymac salt'a i osobno hasha)

(Ja uzywam tego i jak na razie nigdy nie mialem klopotu, coprawda sam generuje salta, ale tego typu hasla wspolpracuja z wiloma systemami i programami, jesli chodzi o unix'y)

0

Ja tylko w tej kwestii:

r34p3r napisał(a)

Wydaje mi się, że jeśli zakładamy, że znamy końcowy hash, to powinniśmy założyć też że znamy salt (lub md5(salt)). W końcu prawie na pewno będą przechowywane w tym samym miejscu.
Skąd takie założenie? hash można uzyskać np. kradnąć cookie, salt jest tylko w bazie i nie rozpatrujemy włamania do bazy.

0
Marooned napisał(a)

hash można uzyskać np. kradnąć cookie

no tak, to zmienia postać rzeczy, ja założyłem że żeby poznać hash trzeba się włamać do bazy [wstyd]
lepiej poczytam trochę OWASP, licho nie śpi ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1