Discussion:
Walidacja pól - co z białymi znakami?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Szymono
2007-07-02 10:04:36 UTC
Permalink
Hej,

mam pewne pytanie dotyczace walidacji pol i biale znaki - np. na przykladzie
pola Login.

Ja przyjalem, ze:

1) gdy uzytkownik wprowadzi do pola ciag bialych znakow, np. ' ' (3 spacje) to
aplikacja potraktuje to pole jako puste (wyswietlajac odpowiedni komunikat o
koniecznosci wypelnienia tego pola).

2) gdy uzytkownik wprowadzi do pola:

a) <biale_znaki>tekst - system zinterpretuje to jako: tekst
b) tekst<biale_znaki> - jako: tekst
d) <biale_znaki>tekst<biale_znaki> - jako: tekst
c) tekst<biale_znaki>tekst - jako: tekst<biale_znaki>tekst


Chodzi mi tu glownie o aplikacje webowe. Czy moje rozumowanie jest bledne i
jesli tak to czy moglibyscie podzielic sie waszym doswiadczeniem w tej kwestii.

Pozdrawiam,
Szymono.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Zbyszek Malec
2007-07-02 10:35:48 UTC
Permalink
Post by Szymono
Chodzi mi tu glownie o aplikacje webowe. Czy moje rozumowanie jest bledne i
jesli tak to czy moglibyscie podzielic sie waszym doswiadczeniem w tej kwestii.
To zależy wyłącznie od ciebie. Jeżeli potrzebujesz tekstu razem z białymi
znakami to bierzesz go w całości, jeśli bez, to bez. Nie widzę problemu.
--
Zbyszek Malec Ustronie 416
jid: ***@jid.pl
pbit.
2007-07-02 14:50:21 UTC
Permalink
hasła nie obcinałbym z białych znaków, czyli głownie ze spacji
(tabulator powoduje przejscie do kolejnej formatki a nie wpisanie
znaku tabulacji \t),
ja przyjmuje że spacja jest składową hasła i jest wpisywana nie przez
omyłkę
lecz świadomie... z białych znaków możesz obciąć (trim) nazwe
użytkownika (login)...
poza tym do hasła trzeba by zastosować kilka reguł...

pzdr.
Szymono
2007-07-02 15:26:41 UTC
Permalink
Post by pbit.
hasła nie obcinałbym z białych znaków, czyli głownie ze spacji
...
Post by pbit.
ja przyjmuje że spacja jest składową hasła i jest wpisywana nie przez
omyłkę
lecz świadomie...
A czy pozwalasz na wpisanie hasla skladajacego sie z samych tylko bialych znakow?
Post by pbit.
poza tym do hasła trzeba by zastosować kilka reguł...
Chetnie poznam tem reguly - moglbys opisac?


Pozdrawiam,
Szymono.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Jacek Czerwinski
2007-07-02 16:35:40 UTC
Permalink
Post by Szymono
Post by pbit.
hasła nie obcinałbym z białych znaków, czyli głownie ze spacji
...
Post by pbit.
ja przyjmuje że spacja jest składową hasła i jest wpisywana nie przez
omyłkę
lecz świadomie...
A czy pozwalasz na wpisanie hasla skladajacego sie z samych tylko bialych znakow?
Post by pbit.
poza tym do hasła trzeba by zastosować kilka reguł...
Chetnie poznam tem reguly - moglbys opisac?
A my chętnie poznamy środwisko w jakim 'chodzi' apliakcja - moglbys opisac?
pbit.
2007-07-03 06:22:43 UTC
Permalink
:: moja aplikacja to witryna dla urzędników (i tylko dla nich) stąd
logowanie, nadawanie praw dla poszczegolnych userów, itp...
aplikacja akurat to php/oracle + inne technologie. W każdym razie
co do haseł przyjął bym że:
1. hasło posiada min. ilość znaków.
2. w zależnosci od wymaganego poziomu bezpieczeństwa:
a) hasło jest mocne: powiedzmy różnorodność znaków w haśle (czy
hasło ma liczby, litery, znaki;)
czyli hasła: aaaaaa, 1111aaaa, abababab, aaaDDgg - posiadają
małą ilość użytych róznych znaków, lub słebe ich kombinacje,
w tym momencie odpadają ci np. same spacje.
b) hasło nie powinno być takie jak login.
c) okresowa zmiana hasła (można trzymać historie haseł)

Wiec... Ja określił bym zbiór znaków których można użyć (spokojnie
możesz wyrzucić białe znaki lub zezwolić tylko na spacje),
użytkownicy na pewno nie będą protestować ;), dalej
możesz sprawdzić czy hasło nie jest takie jak login, jego siłe, czy
zakończył się okres ważności i (wreszcie ;)) puścić usera do
systemu...


pzdr,
Jacek Czerwinski
2007-07-03 09:30:58 UTC
Permalink
Post by pbit.
:: moja aplikacja to witryna dla urzędników (i tylko dla nich) stąd
logowanie, nadawanie praw dla poszczegolnych userów, itp...
aplikacja akurat to php/oracle + inne technologie.
Nie pomyliłeś grupy z tym tematem?
Zbyszek Malec
2007-07-03 09:43:51 UTC
Permalink
Post by Jacek Czerwinski
Nie pomyliłeś grupy z tym tematem?
Zobacz kto o co pyta i kto na co odpowiada.
--
Zbyszek Malec Ustronie 416
jid: ***@jid.pl
Jacek Czerwinski
2007-07-03 12:22:50 UTC
Permalink
Post by Zbyszek Malec
Post by Jacek Czerwinski
Nie pomyliłeś grupy z tym tematem?
Zobacz kto o co pyta i kto na co odpowiada.
fakt.

Wykombinowałem w swoim ułomnym łbie, że jeśli trim owawiany jest przez trzy
dni, musi w tym być jakiś 'systemowy hack'.

A wracając do trima: Nie wyobrażam sobie nie trim'ować większości danych.
Do d..y działa system który sortuje (a są takie):
_Zenkowicz (spacja)
Abacki
Babacki itd.

2. Z ciekawostek których nie ma w książkach ale są w realnych programach to
powtórzenie pola w postaci do wyszukiwania: wycięte np. wszystkie spacje,
zrzut do małych (dużych)liter, zestandaryzowanie separatorów, mawet
podmiana PL-literek na łacińskie odpowiedniki (w czasach jak standardów
literek było fesnaście). Na przykład w nazwach ulic, złożonych nazwiskach
itd.

3. Potraktowanie stringów przez SQL jest warte wzmianki (i sprawdzenia)
np. zwykle w porównaniach 'KOT' równa się 'KOT_____' (spacja)
Mikolaj Rydzewski
2007-07-04 11:36:15 UTC
Permalink
Post by Jacek Czerwinski
2. Z ciekawostek których nie ma w książkach ale są w realnych programach to
powtórzenie pola w postaci do wyszukiwania: wycięte np. wszystkie spacje,
zrzut do małych (dużych)liter, zestandaryzowanie separatorów, mawet
podmiana PL-literek na łacińskie odpowiedniki (w czasach jak standardów
literek było fesnaście). Na przykład w nazwach ulic, złożonych nazwiskach
Czesc tych rzeczy rozwiazuja indeksy funkcyjne w bazie danych.
--
Mikolaj Rydzewski <***@ceti.pl> http://ceti.pl/~miki/
PGP KeyID: 8b12ab02
There are three kinds of people: men, women, and unix.
pbit.
2007-07-03 10:25:32 UTC
Permalink
Post by Jacek Czerwinski
Nie pomyliłeś grupy z tym tematem?
czytaj od poczatku do końca, tutaj akurat technologia nie jest ważna...
Grzegorz Szyszlo
2007-07-30 09:36:21 UTC
Permalink
Post by pbit.
:: moja aplikacja to witryna dla urzędników (i tylko dla nich) stąd
logowanie, nadawanie praw dla poszczegolnych userów, itp...
aplikacja akurat to php/oracle + inne technologie. W każdym razie
1. hasło posiada min. ilość znaków.
ok. za absolutne minimum uważam 6 znaków, a najlepiej 8.
Post by pbit.
a) hasło jest mocne: powiedzmy różnorodność znaków w haśle (czy
hasło ma liczby, litery, znaki;)
tutaj często spotykam się z różnymi udziwnieniami, typu "hasło nie może
zaczynać się cyfrą" lub kończyć, albo że nie może być dłuższe niż 8
znaków ale musi mieć co najmniej 3 cyfry nie sklejone ze sobą. Nie widzę
w tym sensu poza utrudnieniami. często też bywa, że wprowadzam hasło 15
znakowe, z czego system do weryfikacji bieże tylko 8 pierwszych. bezsens.
Post by pbit.
czyli hasła: aaaaaa, 1111aaaa, abababab, aaaDDgg - posiadają
małą ilość użytych róznych znaków, lub słebe ich kombinacje,
w tym momencie odpadają ci np. same spacje.
w zasadzie OK. tyle że system może przepuścić 1a1a2a2a1a . tutaj raczen
należy zastosować warunek że ma być min. ileśtam różnych znaków, oraz
max. 2 grupy z powtórkami.
Post by pbit.
b) hasło nie powinno być takie jak login.
za mało. hasło nie może być podobne do loginu. a to oznacza, że zestaw
znaków jednego (w obydwie strony) nie może być podzbiorem drugiego. tyle
że jest to warunek minimum.
Post by pbit.
c) okresowa zmiana hasła (można trzymać historie haseł)
heh. pytanie jak trzymać historię haseł :) bo to oznacza zazwyczaj
trzymanie haseł jawnie. bo jak inaczej porównasz czy hasło zostało już
użyte?
Post by pbit.
Wiec... Ja określił bym zbiór znaków których można użyć (spokojnie
możesz wyrzucić białe znaki lub zezwolić tylko na spacje),
użytkownicy na pewno nie będą protestować ;),
będą. wtedy trzeba ich szantażować choćby słownikiem ortograficznym :)
zresztą użytkownicy sprawnie hackują metody wymuszania różnorodności,
i pojawiają się serie haseł typu
bolekilolek1
bolekilolek2
bolekilolek3 ..... itd.

każdy ułatwia sobie jak może :)
Artur Zabronski
2007-07-30 09:55:34 UTC
Permalink
Post by Grzegorz Szyszlo
heh. pytanie jak trzymać historię haseł :) bo to oznacza zazwyczaj
trzymanie haseł jawnie. bo jak inaczej porównasz czy hasło zostało już
użyte?
Trzymasz hash-e haseł i tylko nowe porównujesz z wcześniejszymi? :-)
--
Pozdrawiam,
Artur
Grzegorz Szyszlo
2007-07-30 10:40:00 UTC
Permalink
Post by Artur Zabronski
Post by Grzegorz Szyszlo
heh. pytanie jak trzymać historię haseł :) bo to oznacza zazwyczaj
trzymanie haseł jawnie. bo jak inaczej porównasz czy hasło zostało już
użyte?
Trzymasz hash-e haseł i tylko nowe porównujesz z wcześniejszymi? :-)
tak się da porównać tylko identyczne hasła :) podobnych już tak nie
porównasz.

znik.

Grzegorz Szyszlo
2007-07-30 09:24:31 UTC
Permalink
Post by Szymono
mam pewne pytanie dotyczace walidacji pol i biale znaki - np. na przykladzie
pola Login.
1) gdy uzytkownik wprowadzi do pola ciag bialych znakow, np. ' ' (3 spacje) to
aplikacja potraktuje to pole jako puste (wyswietlajac odpowiedni komunikat o
koniecznosci wypelnienia tego pola).
a) <biale_znaki>tekst - system zinterpretuje to jako: tekst
b) tekst<biale_znaki> - jako: tekst
d) <biale_znaki>tekst<biale_znaki> - jako: tekst
c) tekst<biale_znaki>tekst - jako: tekst<biale_znaki>tekst
Chodzi mi tu glownie o aplikacje webowe. Czy moje rozumowanie jest bledne i
jesli tak to czy moglibyscie podzielic sie waszym doswiadczeniem w tej kwestii.
jeśli w danym polu użycie białych znaków nie ma sensu, wycinasz je i
dopiero dalej przetwarzasz. w haśle biały znak jest ważny, a w
przeglądarce i tak w miejscu znaku pojawia się *, więc tu bym nie ingerował.
Problemem są białe znaki wewnątrz napisu. Tutaj też zależy od specyfiki
pola. czy wszelkie ciągi białych znaków w środku zamienisz na pojedynczy
biały znak, to jest twoja wola. Przykładem jest pole w rodzaju "Imiona".
Tutaj pomiędzy kolejnymi imionami wiele białych znaków nie ma sensu.

Dodatkowym problemem, związanym już częściowo z bezpieczeństwem, jest
szczególny biały znak "ENTER" w polach, które z definicji składają się
z jednowierszowego napisu bez znaku końca linii (np. pole typu text czy
password). niektóre przeglądarki mają błędy, i stosując pewne proste
zabiegi można taki znak w pole wcisnąć. Można też nie używać
przeglądarki i wysłać do serwera takie pole choćby jakimś skryptem.
Zwróć też uwagę na różne kwestie związane z tzw. SQL Injenction, ale to
już inna sprawa, nie związana bezpośrednio z walidacją danych na wejściu.

znik.
Loading...