/ / Praktická validácia používateľa (citlivosť a špecifickosť)? - regex, validácia, podniková logika

Praktické overenie užívateľa (citlivosť a špecifickosť)? - regex, validácia, podniková logika

Keď som sa prvýkrát naučil používať pravidelnévýrazy sme sa naučili ako analyzovať veci ako telefónne čísla (samozrejme vždy 5 číslic, voliteľný priestor a ďalšie 6 číslic), e-mailové adresy (zrejme vždy alfanumerické, potom jeden "@", potom alfanumerické, za ktorým nasleduje ". tri písmená), ktoré by sme mali vždy robiť na overenie údajov, ktoré používateľ zadá.

Samozrejme, ako som sa "rozvinul som", som sa naučil akohlúpe môžem byť základný prístup, ale čím viac sa pozriem, tým viac sa spochybňujem koncept úplne, najopatrnejšie opatrné správne potvrdenie niečoho ako e-mailová adresa prostredníctvom regexov končí až stovkami, ak nie tisíckami znakov, aby obaja prijali všetky právne prípady a správne odmietnuť iba tie nelegálne. Ešte horšie, všetko toto úsilie neplatí absolútne nič pre skutočnú platnosť, používateľ mohol omylom pridať "a" alebo túto e-mailovú adresu nemôže používať vôbec, alebo dokonca používa adresu niekoho iného alebo môže dokonca použiť symbol "+", ktorý je označený nevhodne.

Napriek tomu, zdá sa, každý web, ktorý prichádzamnapriek tomu stále vykonáva tento druh technickej kontroly, čím zabraňuje tomu, aby som uviedol do tajnej správy e-mailovú adresu alebo meno, alebo namietal proti myšlienke, že niekto by mal viac alebo menej ako jeden titul, potom jediné meno a jedno priezvisko, všetky vyrobené čisto z latinských znakov, ale bez akejkoľvek formy kontroly, či je to moje skutočné meno.

Existuje tam výhoda? Akonáhle sa manipulujú s injekčnými útokmi (ktoré by sa mali uskutočňovať inými metódami ako sterilizáciou vstupu), existuje iný bod týchto kontrol?

Alebo na druhej strane, je v skutočnosti istý požiarny spôsob, ako skutočne overiť používateľské údaje inak ako "používať" ich akýmkoľvek spôsobom má zmysel v kontexte a zistiť, či to prepadá?

odpovede:

0 pre odpoveď č. 1

existuje iný bod k týmto kontrolám?

Iste. Vedieť, že vaše údaje sú platné, je veľmi dôležité. V prípade e-mailových adries napríklad posielanie e-mailov na adresu, ktorú ste neoverili, prinajmenšom povedie k odskakovaniu, dostatočné odskočenie a váš mailhost môže zablokovať spamovanie. k zbytočným nákladom, ak sa vaša aplikácia pokúša odoslať SMS im. Zoznam pokračuje ďalej a ďalej.

Alebo na druhej strane, je v skutočnosti istý požiarny spôsob, ako skutočne overiť používateľské údaje inak ako "používať" ich akýmkoľvek spôsobom má zmysel v kontexte a zistiť, či to prepadá?

Áno, ale regex je zvyčajne zlý spôsob, ako potvrdiťdát. Ak sa má telefónne číslo uvádzať ako "5-miestne miesto, potom 6 číslic", potom vaša kontrola zlyhá, ak zadávam 5 číslic dva medzery potom 6 číslic alebo 5 číslic pomlčka potom 6 číslic alebo 11 číslica ". Používajte zdravý rozum a očakávajte, že vám poskytne bláznivý formát. Vedieť, čo je absolútna minimálna požiadavka. Napríklad, ak potrebujete celkom 11 číslic, odstráňte všetko, čo nie je prvé. Potom formátovanie nezáleží.

Prečítajte si tiež RFC. Nemôžem počítať, koľkokrát bola moja e-mailová adresa odmietnutá, pretože má znamienko plus. Množstvo tých, ktoré boli veľkou tech-orientovanou spoločnosťou s programátormi, ktoré by mali vedieť lepšie, bolo skôr sklamaním.


17 pre odpoveď č. 2

Nadmerné potvrdzovanie vecí je skutočne jedným zo zákazníkov internetu. Najmä v prípade, že osoba, ktorá píše overovací kód, nemá žiadne aktuálne znalosti o problémovej doméne. Nie, asi to robíte nie skutočne vedieť, aké je platná syntax pre e-mailové adresy. Alebo reálne adresy, najmä medzinárodne. Alebo telefónne čísla. alebo ľudia.

Pri pohľade na niekoľko lokalizovaných príkladov (moja e-mailová adresa) a extrapolácia na pravidlá, ktoré pokrývajú všetko možné hodnoty v rámci domény (všetky e-mailyadresy) je šialenstvo. Ak nemáte dokonalé znalosti domény, nemali by ste prísť s pravidlami o doméne. V prípade e-mailových adries to vedie iba k veľmi úzkej podmnožine možných e-mailových adries, ktoré sú v každodennom živote použiteľné. Ghee, vďaka, chalani.

Pokiaľ ide o mená ľudí, akákoľvek osoba, ktorá vám povie, je ich meno podľa definície ich meno. To je to, čo ich nazývaš. Nemôžete ju overiť automaticky; museli poslať kópiu svojho rodného listu skutočnému úradníkovi validácia, Dokonca aj vtedy je naozaj to, čo vás zaujíma vedieť, alebo stačí, aby ste ich pozdravili a identifikovali na stránke fóra?

Facebook robí (urobil?) prísne potvrdenie platnosti mena, aby ľudia mohli používať svoje skutočné mená na registráciu. No, veľa ľudí, ktorých poznám na Facebooku, stále používa nejaký nezmyselný názov. Filter samozrejme nefunguje. Povedal to, možno to funguje dosť dobre pre Facebook tak, aby väčšina ľudia používajú svoje skutočné meno, pretože nemôžu byť obťažovaní zistiť, ktorý konkrétny model prejde validáciou. V tomto zmysle môže takýto filter slúžiť niektorí účelu.

Nakoniec je na vás, aby ste sa rozhodli pre dôvody validácie a špecifické limity ktoré chcete vynútiť. Problémom je, že ľudia často nerozmýšľajú o väčšom obrázku pred zápisom overovacieho kódu a majú žiadny dobrý dôvod pre svoje špecifické limity. Do tejto pasce nepatrí.