Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Filip Jirsák

Stran: 1 ... 49 50 [51] 52 53 ... 375
751
Vývoj / Re:Hledání a nahrazování pomocí JavaScriptu
« kdy: 11. 01. 2022, 17:35:17 »
To ze to neviete, neznamena ze to nejde.
Já jsem ale nepsal, že to nejde. Já jsem kritizoval to, že jste to odbyl „to se vyřeší někde jinde“. Má to být v kódu hned u kódu, který to používá. Třeba aspoň tak, jak jste to napsal v příkladu vy.


To s tím nijak nesouvisí.
Suvisi.
To, že to neumíte napsat dobře, neznamená, že to dobře napsat nejde. A nakonec jste sám napsal příklad, který je špagetový jenom trochu, přitom je to tam ošetřené. Dalo by se to samozřejmě napsat tak, aby tam špaget bylo ještě méně. Dalo by se to napsat i objektově (a bez špaget).

Predcasnej optimalizacie sa dopustate vy.
V čem?

Ak by ste mal aspom tusenie ako funguje V8 (ale aj spidermonkey)
Nosíte dříví do lesa. Mám pro vás takovou pomůcku, až se zase budete pokoušet někoho poučovat. Když napíšete, jak něco funguje, zkuste to následně porovnat s textem toho, koho poučujete. Když zjistíte, že to, co napsal, není v žádném rozporu s vaším poučováním, nemáte žádný důvod myslet si, že dotyčný neví to, o čem ho poučujete. Takže to poučování zase můžete smazat.

Případně, pokud je tenhle postup na vás moc složitý, mám pro vás i jednodušší variantu: Pokud napíšete text, ve kterém někoho poučujete, zase ten text smažte.

Kdezto vykonny kod toho regexp je VZDY skompilovany
No a co? Vy používáte regexp, já používám regexp, takže ten váš výkonný zkompilovaný kód (o kterém se mimochodem jenom domníváte, že je zkompilovaný) používáme oba dva. Pokud si myslíte, že váš kód je lepší, zkuste hledat místa, ve kterých se ten kód liší, ne ta, která jsou stejná.

Mimochodem, změřit dobu běhu kódu není zas tak těžké. Čísla z měření by mne přesvěčila, vaše dojmy mne nepřesvědčí.

752
Server / Re:Gmail zahazuje maily?
« kdy: 11. 01. 2022, 12:59:18 »
Dnes jsem prakticky overil, ze roli muze hrat i priloha. Poslal jsem na gmail email s cca 10MB prilohou a gmail to odmitl S POUKAZEM NA ZAVADNOST DOMENY (o pritomnosti ci velikosti prilohy ani slovo). Vzapeti jsem poslal mail bez prilohy a ten normalne prosel...
Antispam se obvykle dělá tak, že se za různé „prohřešky“ strhávají body. Když počet bodů přesáhne nějakou hranici, e-mail se rovnou odmítne, když je v pásmu tolerance, doručí se do složky se spamem, a jenom když trestných bodů nasbírá málo, doručí se normálně do příchozí pošty. No a když se e-mail rovnou odmítá, uvádí se tam jeden důvod – je tedy rozumné uvést tam ten důvod, který znamenal nejvíc trestných bodů. Takže příloha klidně může to, co u daného e-mailu způsobí, že dojde k překročení toho tvrdého limitu – ale na počet bodů je větší problém ta doména než příloha, takže v chybové zprávě je uvedena doména.

753
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 07. 01. 2022, 13:55:51 »
Jeste jedna vec, u virtualni inKarty je moznost mit ten QR kod vytisteny nebo jako obrazek v mobilu, po overeni udaju mi prisel email s pdf, ve kterem je dvojice QR, nad kterou je napsano:

V případě vybití či poškození mobilního telefonu ukažte tuto kartičku průvodčímu.

na tom obrazku je naznak, ze se to ma prehnout aby to bylo oboustranne. Samozrejme to asi nebude stacit pri kontrole v zahranici, ale pri kontrole pruvodcim CD by melo stacit mit ten QR, jizdenku maji ulozenou v POPce.
Tohle podle mne řeší rojoův problém. Buď může na notebooku ukazovat to PDF, nebo pokud to chce „vytunit“, může si udělat aplikaci, která ty dva QR kódy bude zobrazovat na střídačku s frekvencí 1 sekundy.

754
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 07. 01. 2022, 13:36:51 »
Jeste jedna vec, u virtualni inKarty je moznost mit ten QR kod vytisteny nebo jako obrazek v mobilu, po overeni udaju mi prisel email s pdf, ve kterem je dvojice QR, nad kterou je napsano:

V případě vybití či poškození mobilního telefonu ukažte tuto kartičku průvodčímu.

na tom obrazku je naznak, ze se to ma prehnout aby to bylo oboustranne. Samozrejme to asi nebude stacit pri kontrole v zahranici, ale pri kontrole pruvodcim CD by melo stacit mit ten QR, jizdenku maji ulozenou v POPce.
Jsou QR kódy v tom PDF shodné s tím, co ukazuje aplikace? Pokud ano, zkuste je porovnat ještě v okamžiku, kdy budete mít zakoupenou nějakou jízdenku.

755
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 07. 01. 2022, 13:35:10 »
Co se týče jízdenek koupených přes aplikaci s inKartou (vázaných na cestujícího s inKartou), tak stačí načíst inKartu a jízdenky se už dále neskenují. Naopak to nefunguje, takže když napřed ukážete jen tu jízdenku, bude potřeba ještě dodatečně naskenovat inKartu, k prokázání identity/slevy. To ale dává smysl.
Což pořád neřeší, zda jsou jízdenky offline uloženy v mobilu cestujícího nebo ve čtečce průvodčího. Osobně mi dává větší smysl ta první varianta, protože se dá předpokládat, že když cestující kupuje jízdenku z mobilu, stihne se ještě jízdenka stáhnout. A jde o jednu nebo pár jízdenek. Zatímco průvodčí je dlouho ve vlaku, kde to se signálem nebývá nejlepší, musely by se mu tam nové jízdenky posílat každých pár minut – a pokud čtečka neví, na jakém vlaku průvodčí zrovna je a kde bude pak, musela by stahovat všechny jízdenky z celé republiky.

Ale o kterou variantu jde se snadno zjistí, až někdo z diskutujících nějakou jízdenku koupí :-)

756
Server / Re:Gmail zahazuje maily?
« kdy: 07. 01. 2022, 13:29:55 »
v postmasters tools mám doménu docela dlouho, ale stále tam nic ohledně reputace nevidím. Jen v logu odmítnutí převzetí zprávy.
Tak by aasi bylo fajn řešit, proč tam nic ohledně reputace nevidíte. Protože to může s tím odmítáním e-mailů souviset.

Vezmete vždy poslední příspěvek a reagujete na něj.
Připadá mi to lepší, než reagovat na výmysly nebo na něco starého, co už se později v debatě vyřešilo.

Například tím, že tedy mám špatnou reputaci, protože jsem o reputaci nepsal.
Ale psal. Napsal jste, že vám GMail vrací stejnou chybu, jako někomu před vámi – a ta chyba spočívá v tom, že má vaše doména šatnou reputaci u GMailu.

Ale v předchozích zprávách jsem jasně napsal, že reputace 10/10 a podobně.
Aha, považoval jsem to za samozřejmé. Ale vám to evidentně jasné není, takže vám to raději napíšu: Když vám e-maily odmítá GMail, řešte reputaci na GMailu a ne někde jinde.

Takže já vyvrátím problém s reputací
Zkuste to. Nicméně zatím jste tu problém s reputací potvridl dvěma způsoby – za prvé chybovou hláškou GMailu, kdžy vám e-mail omítne; za druhé tím, že v GMail Postmaster Tools nevidíte informace o reputaci (kdyby tam problém nebyl, uvidíte tam, že je reputace dobrá nembo vysoká).

Takže se motáme v kruhu a nikam to nevede.
Z kruhu se vymotáte, až pochopíte, že když máte problém s GMailem, je potřeba řešit problém s GMailem a ne se ohánět tím, že někde jinde máte reputaci 10/10. Což navíc nejspíš není pravda, protože to hodnocení 10/10 je hodnocení aktuálího stavu, zatímco „reputace“ zahrnuje „zkušenosti z minula“ – které rozhodně nemůže mít nějaký webový nástroj, kam jste nikdy žádný e-mail neposlal, za to je má GMail, kam se e-maily pokoušíte posílat.

Mimochodem, máte správně nakonfigurovaný DMARC a máte tam zapnuté notifikace? Aby vám třeba GMail poslal informace o neúspěšných pokusech o doručení e-mailu. Jestli se třeba e-maily z vaší domény nepokouší doručovat i nějkaý spammer, a třeba i podepsané správným DKIM – mohl vám uniknout privátní klíč.

Omlouvám se, že nedokážu postihnout veškeré alternativy a možnosti v jednom příspěvku.
Nemusíte postihovat všechny altenativy v jendom příspěvku. Stačí, když se neudete soustřeďovat na to nepodstatné a naopak zaměříte svou pozornost na to podstatné.

Ale pokud si myslíte, že se problém vyřeší tím, že budete v diskusi plakat, že máte někde 10/10 a přesto je na vás GMail ošklivý, tak v tom klidně pokračujte…

757
Vývoj / Re:Hledání a nahrazování pomocí JavaScriptu
« kdy: 07. 01. 2022, 13:15:04 »
Rovnako ako escapovanie riadiacich znakov v tom tokene.
Gratuluju, to je vůbec ten nejlepší způsob, jak vyrobit *injection chybu v aplikaci. Prostě si na všechn místech, kde by se to dalo ošetřit, říct „hm, to už je určitě ošetřené někde jinde“.

Nebudeme predsa pisat spagetak.
To s tím nijak nesouvisí.

Co sa tyka efektivnosti, tak ten regexp byva prakticky v kazdom interpretri zkompilovany z ineho jazyka (zvedsa C). Ak si musi z toho kompilovaneho kodu zbytocne odskakovat do interpretru, tak efektivita klesa.
To je klasická předčasná optimalizace. Navíc jenom hádáte, jak by asi tak mohl interpret JavaScriptu fungovat. Přitom dnes budete těžko hledat nějaký interpret, který by optimalizoval víc, než interprety JavaScriptu v prohlížeči (zejména V8). Možná by se to dalo srovnávat tak s JVM, pokud ji budeme považovat za interpret.

758
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 07. 01. 2022, 09:20:27 »
Domnívám se že se tak děje proto, že se data inKarty nevejdou do jednoho QR kódu (je tam ta barevná fotografie), a tudíž pořád dokola rotuje několik QR kódů které ta data inKarty postupně do čtečky přenesou.
Máte pravdu, u mne to vypadá, že se tam střídají dva stejné QR kód. To je zajímavé řešení – a vysvětluje to, proč to čtení čtečkou průvodčích trvá tak dlouho.

Vzpomněl jsem si nicméně na situaci která nasvědčuje opaku: průvodčí eTicket po načtení animace neviděla (nebyl tedy stažený do její čtečky kde by se spároval s načtenou inKartou), a požádala mě abych jej ukázal zvlášť.
To nemusí svědčit o opaku – je možné, že se vám jízdenka nestáhla do aplikace. Já jsem vycházel z téhle citace:

a pak tohle https://zpravy.aktualne.cz/finance/virtualni-in-karta-v-mobilu/r~d7508122fac811e7aabeac1f6b220ee8/

QR kód má v sobě zašifrovanou fotografii, osobní údaje o uživateli, seznam slevových aplikací a také čerstvě zakoupených jízdenek. To umožňuje vlakovému personálu provést kontrolu off-line a zároveň jej nelze kopírovat, čímž se výrazně zvyšuje ochrana proti zneužití," říká Miloslav Kopecký, předseda představenstva divize České dráhy - Informační systémy.

To, že jsou v QR kódu zakódované i čerstvě zakoupené jízdenky by si myslím novinář jen tak nevymyslel.

759
Vývoj / Re:Hledání a nahrazování pomocí JavaScriptu
« kdy: 07. 01. 2022, 09:13:00 »
Tak ide to aj bez zbytocnych cyklov alebo callbacku pre kazdy vyskyt. To je v podstate skryte GOTO label. Regexpy vedia aj OR.
Ano, kód se dá vždycky znepřehlednit. Ten callback je tam schválně, protože pak si můžete s nahrazováním dělat, co chcete, můžete každý token nahrazovat něčím jiným. Skryté GOTO vůbec ničemu nevadí – problém s klasickým GOTO je to, že znepřehledňuje kód. Co je efektivnější, jestli ten složený regexp nebo vyhledávání tokenů v poli, by se muselo změřit – ale vzhledem k tomu, že je to celé v JavaScriptu, mi to připadá jako velmi předčasná optimalizace. O možnosti použít OR v regulárních výrazech samozřejmě vím. Ale jednak v tom mlhavém zadání není řečeno, jak s emá pracovat s něčím, co vypadá jako token ale neví v seznamu tokenů – moje řešení umožňuje takové případy ignorovat (jak je to napsané), ale zároveň umožňuje na to nějak zareagovat, třeba ten token alespoň zalogovat. A druhá věc je to, na co upozornil _Tomáš_ – že cpát něco, co pravděpodobně může uživatel ovlivnit, bez escapování do regulárního výrazu, je dost nebezpečné. Ano, teď jsou jako tokeny povolea jen písmena a číslice, ale pokud by se někdo později rozhodl to změnit, nemusí mu dojít, že má upravit i tohle vytváření regulárních výrazů.

760
Vývoj / Re:Hledání a nahrazování pomocí JavaScriptu
« kdy: 07. 01. 2022, 08:57:50 »
Bez urazky, pokud nebyl prvni prispevek editovan (autorem), pak by ses mel zamyslet, nad tim co tu pises.

Takhle můžeš jen doufat, že nikoho nenapadne zadat handles = ["john.doe"], ono to jde ještě dál, hodnoty v handles a topics se dají přímo využít pro XSS. Takovýhle způsob psaní kódu je dost nebezpečný.

_Tomáši_, děkuji za odpověď dirka12345, že úvodní zadání je opravdu špatně napsané. Tazatel totiž později svým kódem naznačil, že oba dva druhy tokenů mohou obsahovat pouze malá a velká písmena anglické abecedy a arabské číslice. Tečka tedy mezi povolené znaky nepatří, ani menšítko, ampersand nebo uvozovky, takže pro XSS to využít nejde, i kdyby měl uživatel možnost ty hodnoty upravovat.

761
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 06. 01. 2022, 17:24:09 »
obyčejné screenshoty toho měnícího se kódu v aplikaci a podíval se jestli se jednotlivé "frames" mění v čase (porovnat klidně jako obrázky)
Předpokládám, že se nebavíme o jízdence, ale o InKartě. Tam se mění celý QR kód (všechny jeho dlaždice) každou vteřinu – na to nepotřebuju screenshoty a porovnání obrázků, na to mi stačí oči.

- QR kód jízdenky může být vytištěný
Pro jízdenky (o kterých tu ale podle mne nediskutujeme) se používá aztécký kód, ne QR kód.

Nevidím žádný přínos toho že by ty kódy v aplikaci byly nějak "dynamicky" podepisované, nebo spojené dohromady (myslím tím inKartu a jízdenky). Naopak by to celý systém jenom komplikovalo a chovalo se v různých scénářích.
Někde dříve tady bylo zmíněno, že kód InKarty obsahuje i naposledy koupené jízdenky. Což by dávalo smysl – průvodčí může načíst jenom InKartu a pokud v ní budou uložené i poslední jízdenky, bude to celé fungovat offline (po stažení jízdenky do aplikace).

762
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 06. 01. 2022, 16:16:22 »
Mám pocit, že je tu trochu zmatek v tom podepisování. Aby podepisování dávalo smysl, musí data (pro koho je jízdenka vydaná, na jakou trasu a na kdy) samozřejmě podepsat server. Pokud by je podepisovala až aplikace v mobilu, může pomocí reverzního inženýrství (o které se tu snažíte) kdokoli vydávat jakékoli jízdenky. Ale tahle data server podepíše jednou při nákupu jízdenky a pošle vám je do aplikace. Aplikace si ta podepsaná data uloží a dále s nimi už může pracovat offline. Tahle podepsaná data posílaná ze serveru by tazatel musel vždy získat i pro svou aplikaci.

Druhá věc je zobrazení QR kódu. Tam už podepisování není potřeba, může tam být leda pro efekt. Tam už se řeší jen to, aby se zobrazený QR kód každou sekundu změnil, což je ochrana proti jeho ofocení. Pravděpodobně se to řeší tak, že se vezmou ta výše uvedená data ze serveru, k nim se připojí časová značka a to celé se prožene nějakou transformační funkcí, aby se změna časové značky rozprostřela do celého zakódovaného řetězce (a neměnil se tak jen kus QR kódu, ale celý kód). Ta transformační funkce může být nějaká šifra, ale stačilo by třeba i XORovat celý vstup tou časovou značkou. Do toho pak ale moc nesedí informace o tom, že jste v tom kódu viděl nějaký kus dat – snad jedině že by ta data byla rozsekaná na bloky a podle času se jen bloky různě zamíchaly – jiný způsob, jak měnit v čase celý QR kód a zároveň v něm zachovat viditelné části mne nenapadá.

763
Vývoj / Re:Hledání a nahrazování pomocí JavaScriptu
« kdy: 06. 01. 2022, 15:54:36 »
Ze zadání vyplývá, že "plaintextové reference" na uživatele a témata chce nahradit HTML okazy.
Kód: [Vybrat]
@john and @johnathan went to see @sarah in their #hometown to look at her new #home.

@john      -->  <a href="/user/john">@john</a>
#hometown  -->  <a href="/topic/hometown">#hometown</a>
...
Je jasné, že chce nahrazovat jen "kompletní tokeny".

Ne, to ze zadání nevyplývá. Dokonce je zadání zavádějící.

Z navrženého řešení vyplynulo, že tokeny mohou obsahovat pouze malé a velké znaky anglické abecedy a číslice, a že se mají nahrazvat jen „celá slova“ neb ojak píšete vy „kompletní tokeny“. To v zadání nikde není a podstatně to zjednodušuje řešení. V zadání je naopak uvedeno: „Dalej potrebujem zarucit ze ked sa mi prekryvaju tokeny(john -> johnathan) tak sa vyrazy najdu a nahradia spravne.“ Což je ale zavádějící, protože při tom upraveném zadání (nahrazují se jen celá slova) tahle situace nikdy nemůže nastat.

Zkrátka tazatel nejprve napsal dotaz, a teprve pak začal přemýšlet nad tím, co vlastně chce.

Jinak řešení toho upraveného zadání je triviální. Šlo by to napsat i jako oneliner, ale lepší je napsat si na to funkci.

Kód: [Vybrat]
const input = "@john and @johnathan went to see @sarah in their #hometown to look at her new #home."
const handles = ["john", "johnathan", "sarah"].map(item => item.toLowerCase())
const topics = ["home", "hometown"].map(item => item.toLowerCase())

const replaceTokens = (input, symbol, tokens, replace) => {
  const re = new RegExp(`${symbol}([a-zA-Z0-9]+)\b`, 'g')
  return input.replaceAll(re, (patch, g1) => tokens.includes(g1.toLowerCase()) ? replace(g1) : g1)
}

let output = replaceTokens(input, '@', handles, (handle) => `<a href="/user/${handle}">@${handle}</a>`)
output = replaceTokens(output, '#', topics, (topic) => `<a href="/topic/${topic}">#${topic}</a>`)
console.log(output)

764
Vývoj / Re:Jak generovat kód inkarty na PC
« kdy: 06. 01. 2022, 13:50:54 »
Pokud by ta data byla podepsaná aplikací v mobilu, bude to celkem k ničemu – nikomu by nebránilo udělat to samé, o co se pokoušíte vy, ale vložit si tam své údaje.

Otázka ale je, zda se vyplatí do toho investovat čas – ten formát je interní, může se klidně každých pár měsíců měnit. A ani to nemusí být záměrně kvůli znesnadnění vašich pokusů, ale prostě tak, jak se aplikace vyvíjí.

Ale když už to chcete řešit, máte přece tu aplikaci, která kód zobrazuje – takže by mi připadalo nejjednodušší ji disassemblovat a podívat se, jak se ten kód generuje.

765
Server / Re:Gmail zahazuje maily?
« kdy: 05. 01. 2022, 18:45:18 »
SPF resilo SRS.
Řešilo a řeší (a SRS je tak, jak to mělo být u e-mailu správně od začátku, akorát dříve to nikdo neřešil). Akorát že to neřeší antispam, protože takový e-mail pak z pohledu adresáta pochází z přeposílajícího serveru, takže případné negativní skóre se započítává přeposílajícímu serveru a ne původci. ARC-Seal konečně řeší to, že je možné rozlišovat důvěryhodné a nedůvěryhodné přeposílače. A u těch důvěryhodných věřit informacím o přeposlání a penalizovat původce e-mailu a ne přeposílající server.

Stran: 1 ... 49 50 [51] 52 53 ... 375