Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Linquerin 15. 01. 2023, 15:02:06
-
Zdravim,
riesim taku blbost - registraciu do jednej sluzby, a premyslam aky limit dat na dlzku emailu (pocet pismen v emailovej adrese)... to znamena ked sa registruje uzivatel, aku maximalnu dlzku emailu mu povolit... ked sa pozriem na specifikacie tak max. dlzka emailov je 64 pred zavinacom a 255 za zavinacom cize dokopy 319 + zavinac... ale realne asi nema zmysel nechavat taky velky limit, ci?
Myslite, ze ma vyznam to nejako riesit a nastavit, dajme tomu 32 miest pre celu adresu (aj s domenou a zavinacom), to je imho dostatocne pre beznych uzivatelov, lebo kto si bude vymyslat dlhsiu adresu okrem nejakych botov?
Alebo riesim nezmysli, a buchnut tam normalny standard teda: 64+zavinac+255?
-
Bohuzial email moze byt dnes uplne hocico - a@b napriklad. Co sa dlzky tyka, ja mam limit 100 znakov. ak ma niekto dlhsi, ma smolu.
-
Dejte tam to, co je ve standardu. Proč byste to omezoval? Akorát tím někomu zkomplikujete život. Někteří lidé při registraci používají unikátní e-mail, vytvořený třeba tak, že se za lokální část přidá + a rozlišení daného serveru. Spousta serverů (včetně GMailu) pak část od + dál ignoruje při vyhledávání schránky uživatele, tj. můžete si tak k jedné schránce vytvořit spoustu adres. Třeba takováhle adresa může být dost dlouhá.
Nejlepší je nevymýšlet vlastní validaci na e-mail a použít nějakou už hotovou. Ona validace e-mailové adresy není zrovna jednoduchá a když to budete vyrábět sám, nejspíš na něco zapomenete.
-
A co tím řešíte za problém? Co za přínos má takový limit, že do toho jdete za cenu odříznutí části uživatelů s dlouhými ale stále standardními adresami? Do 32 znaků se nevejde ani velká část českých jmeno.prijmeni@firma.cz. Teď si představte, že tam bude muset jít někdo s německým jménem na německé korporátní doméně :)
-
32 znaků je málo, ale na druhou stranu adresu delší než 100 znaků stejně nikdo příčetný jako svoji uživatelskou email adresu používat nebude.
-
32 znaků je málo, ale na druhou stranu adresu delší než 100 znaků stejně nikdo příčetný jako svoji uživatelskou email adresu používat nebude.
Správci hesel je jedno, jestli vyplňuje 15 znaků nebo 150.
Když je něco dané standardem, není rozumné vymýšlet si vlastní řešení. Asi nedokážete domyslet všechny možnosti, jak se může uživatel chtít registrovat, tak nevymýšlejte, jak ho zbytečně omezit.
-
hovorit pri emaloch o "standarde" chce naozaj velke gule.
-
Nevymýšlel bych kolo a použil knihovní funkce pro sanity check emailu. Jinak se stane, že ta registrace s vlastní validací pustí skrz třeba escape sekvence, což (afaik) není povolené. A zatím co v obecném textovém řetězci nejspíš nevadí, u mailu, který se pak předá nějakým dalším knihovnám, to může vést k nějaké zranitelnosti, zatím co délka je zbytečně zkrácená a háže potenciálním uživatelům klacky pod nohy.
A emailová adresa je podobný standard, jako většina dalších věcí na internetu. Nějaké to RFC a k tomu zažité konvence.
-
... Proč byste to omezoval? ...
no ten "standard" mi prisiel ako prilis velka dlzka, a nevedel som ci to ma nejaky vyznam... okrem toho, ked som tam nemal ziadne obmedzenie, tak chodili aj nezmyselne dlhe registracne maily, a vyzerali ako random generovane neexistujuce maily zlozene z pismen a cislic a takisto vygenerovanej domeny...
Do 32 znaků se nevejde ani velká část českých jmeno.prijmeni@firma.cz.
jaaaj, toto ma nenapadlo... :D
Asi bude proste najlepsie drzat sa standardu a nespekulovat zbytocne...
Vdaka vsetkym za usmernenie... :)
-
hovorit pri emaloch o "standarde" chce naozaj velke gule.
To, že ty standardy neznáte, neznamená, že neexistují.
-
riesim taku blbost - registraciu do jednej sluzby, a premyslam aky limit dat na dlzku emailu (pocet pismen v emailovej adrese).
Historicky som videl rozne limity... 30-255 :). Doby, kedy to bolo technicky priam nutne, uz predpokladam, su za nami.
Ostavaju soft dovody ako "chcem aby to rozumne vyzeralo vytlacene" / "mam papierove tlacivo" / "niekde to zobrazujem a nechcem mat rozbity dizajn".
Z praktickeho hladiska mozte predpokladat, ze 50 znakov bude asi malo a 100 znakov bude bohate dost.
32 je nabeton malo :).
-
Jo jo, není nad to, když se někdo rozhodně aplikovat podobná omezení a řekne si, že 32 znaků musí stačí všem...
Další geniální věc je, když se někdo rozhodne validovat emailovou adresu na základě nějakého whitelistu domén, z roku tak 2000, takže registrační formulář pak hlásí emaily končící třeba na ".rocks" jako nevalidní. Případně jinak domrvená validace dokáže zkazit den, když se prostě musíte někam dostat...
-
pak hlásí emaily končící třeba na ".rocks" jako nevalidní.
To nejsi dost progresivní! Narazil jsem i na nějakou službu, které se nelíbila doména druhého řádu jako taková ( netechnicky blabla.cz/com) . Tuším že to byl nějaký finanční startup
-
https://laughingsquid.com/the-worlds-longest-active-email-address/
-
... Proč byste to omezoval? ...
no ten "standard" mi prisiel ako prilis velka dlzka, a nevedel som ci to ma nejaky vyznam... okrem toho, ked som tam nemal ziadne obmedzenie, tak chodili aj nezmyselne dlhe registracne maily, a vyzerali ako random generovane neexistujuce maily zlozene z pismen a cislic a takisto vygenerovanej domeny...
Pokaždé, (a ted to nemyslím ve zlém), když narazím na web (aplikaci, službu), která vymýšlí něco podobného, mě napadá jediná věc - někdo myslel.
Zkuste se, když vyvíjíte zamyslet - co tím chcete získat, je to, co se snažíte řešit, opravdu objektivní problém? Nebo se vám "jenom nezdál něčí email"?
Nebo ta délka někde dělala nějaký problém?
-
Zkuste se, když vyvíjíte zamyslet - co tím chcete získat, je to, co se snažíte řešit, opravdu objektivní problém? Nebo se vám "jenom nezdál něčí email"?
Nebo ta délka někde dělala nějaký problém?
Tohle bych doporučil vytisknout velkými písmeny a jako trest za porušení vytesat do kamene. Pokud něco tvořím, přemýšlím především o tom, kterým omezením uživatele se opravdu nedokážu (z hlediska cena/efekt) vyhnout. Abych si přidělával práci s tím, že budu komplikovat život uživatelům - no, v životě jsem udělal spoustu hovadin, ale tohle asi ne.
Přesně jak tu píše spousta lidí - pokud nemáte extra důvod, použijte pro validaci e-mailu knihovní funkci a nevymýšlejte kolo. A když už, tak ho aspoň nedělejte hranaté, protože kulaté se vám zdá zbytečné.
-
Spíš to je tak, že někdo si myslí, že validovat emailovou adresu je jednoduché. Protože se setkává především s adresami typu jan.novak89@seznam.cz a jnovak4389@gmail.com, tak pred zavináčem povolí písmena abecedy, čísla a max. jednu tečku, to samé za zavináčem. Končit to musí na .cz, .com, .sk a další, na které si zrovna vzpomene. Délka se omezí třeba na 32 znaků, však to všem musí stačit. No a pak už si jen mne ruce, jak na to nemusí na dosmrti sáhnout a jen tuhle funkci šíří jako mor do všech svých dalších výtvorů.
-
Zkuste se, když vyvíjíte zamyslet - co tím chcete získat, je to, co se snažíte řešit, opravdu objektivní problém? Nebo se vám "jenom nezdál něčí email"?
Nebo ta délka někde dělala nějaký problém?
Tohle bych doporučil vytisknout velkými písmeny a jako trest za porušení vytesat do kamene. Pokud něco tvořím, přemýšlím především o tom, kterým omezením uživatele se opravdu nedokážu (z hlediska cena/efekt) vyhnout. Abych si přidělával práci s tím, že budu komplikovat život uživatelům - no, v životě jsem udělal spoustu hovadin, ale tohle asi ne.
Přesně jak tu píše spousta lidí - pokud nemáte extra důvod, použijte pro validaci e-mailu knihovní funkci a nevymýšlejte kolo. A když už, tak ho aspoň nedělejte hranaté, protože kulaté se vám zdá zbytečné.
Obecně s tím souhlasím, je nesmysl vymýšlet si nějaká omezení, která nemají žádné reálné opodstatnění – hrozí akorát to, že někomu bezdůvodně odepřu přístup nebo něco neumožím. (Obzvlášť miluju validace e-mailu, které se snaží podle domény uhodout, zda jde o pracovní nebo soukromý e-mail, takže některé domény odmítají.)
Pozor ale na to, že validace (a zejména ty na frontendu) slouží především pro to, aby upozornily uživatele, když udělá chybu. Třeba kdyby e-mailovou adresu odněkud kopíroval a zkopíroval spolu s ní kus dalšího textu, který není součástí e-mailové adresy. Je potřeba s tím zacházet opatrně, neřešil bych zrovna tohle omezením délky e-mailu, ale někdy jsou podobné validace pro uživatele užitečné.
Dobré je, pokud se takovéhle věci dají řešit varováním – tj. uživatel je upozorněn na to, že jeho vstup možná není správně, ale pokud si to zkontroluje a vstup potvrdí, může ho uložit. Příklad je třeba kontrolní číslice u rodných čísel – desetimístná rodná čísla mají kontrolní číslici, která ale občas byla spočítána špatně. Takže je dobré kontrolní součet ověřit a upozornit uživatele, ať si rodné číslo zkontorluje, zda v něm není překlep. Ale pokud je dotyčný ten chudák, který má rodné číslo se špatnou kontrolní číslicí, přes varování projde dál.
-
ale tak prece nikdo nerika “nevalidovat vubec”.
ale validovat smysluplne. a to dylka u emailu opravdu neni.
-
Obmädzovať dĺžku vstupných polí má zmysel hlavne z hľadiska security (data sanitation, input validation).
Nemá zmysel povoliť niekomu pasntúť do poľa pre meno 4KB dát, ktoré môžu potenciálne obsahovať XSS, log4j a iné zranitelnosti.
Ja osobne by som dĺžku emailovej adresy obmädzil na 255 znakov plus regexp na validnú email adresu.
Mrkol som so nášho nemenovaného CRM s 750k českými zákazníkmi a nie je tam dlhšia adresa ako 54znakov (jedna).
-
.
-
Obmädzovať dĺžku vstupných polí má zmysel hlavne z hľadiska security (data sanitation, input validation).
Nemá zmysel povoliť niekomu pasntúť do poľa pre meno 4KB dát, ktoré môžu potenciálne obsahovať XSS a iné zranitelnosti.
Zranitelnosti typu XSS se nemůžou řešit omezením délky polí. I do vašich 255 znaků se může XSS vejít.
Ja osobne by som dĺžku emailovej adresy obmädzil na 255 znakov plus regexp na validnú email adresu.
Validace se opravdu nedělají tak, že budete ignorovat standard a vycucáte si nějaké číslo z prstu. S tímhle přístupem si koledujete i o bezpečnostní chybu.