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 ... 168 169 [170] 171 172 ... 375
2536
v takovem use case by bylo lepsi pouzit k-d tree. Konverze stringu je ten mensi problem.
V případě, že chce ukládat hodnoty pouze pro menšinu bodů z celého prostoru. Já jsem zadání fortran1986 nepochopil tak, že chce řídké pole, ale že pro zadaný rozsah klíčů bude pole plné.

2537
Pôvodne som to mal ako string. Lenže predstavte si že chcete napríklad získať všetky hodnoty vo vnútri obdĺžnika, ktorý je definovaný dvomi súradnicami xy - príklad:

Kód: [Vybrat]
const values = dynamic2dCollection.getRectValuesBetween({ x: 10, y: 20},  {x: 50, y: 50})

A na to potrebujete v cykle prejsť celú mapu a vždy každý key rozdeliť na pole
Proč potřebujete projít celou mapu? Proč neprojdete jenom hodnoty uvnitř toho obdélníku?

A intuitícia mi hovorí že operácie nad stringom a konverzia na number by boli rádovo pomalšie ako rozdelenie 64bit čísla na dve 32 bitové.
Vyhněte se předčasným optimalizacím na základě intuice. Většinou to situaci akorát zhorší.

vy máte asi namysli js plain objekt použitý ako mapu. Ten používa iba stringové kľúče. Ale dnes už Javascript obsahuje aj špeciálnu kolekciu Map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
Tá funguje aj s číselnými kľúčmi (a nekonvertuje ich na string):
Pořád je to ale hash mapa. Nemyslím si, že byste poznal rozdíl v tom, zda máte jako klíče texty nebo čísla.

2538
Potrebujem to mať v JS keďže v prehliadači sa nedá okrem JS použiť nič iné. Robím si vlastnú implementáciu 2D dynamickej kolekcie (niečo ako 2d array) ktorá by sa mala automaticky rozširovať v dvoch osiach (X,Y) a do kladných aj do záporných hodnôt. Pôvodne som chcel použiť pole polí ale to nebolo moc flexibilné... Moja kolekcia bude obalovať  obyćajný  Map do ktorého potrebujem ako key použiť Xovú a Ylonovú súradnicu a k súradnici potom len priradiť hodnotu. A keďže key je len jedena value tak neviem ako mám do nej vložiť obidve hodnoty tak aby som ich vedel za behu rýchlo spájať a rozdeľovať. Možno som len niečo nedomyslel ak máš iný nápad ako to urobiť budem veľmi rád keď ma ním inšpiruješ.
Když použijete normální mapu v mapě, má to nedostatečný výkon? Je to jenom můj odhad, ale použitím jedné mapy místo  mapy map podle mne zásadní nárůst výkonu nezískáte.

Mapa v JavaScriptu má jako klíče stringy, takže je nesmysl pokoušet se tam něco složitě zakódovat do čísla. Pokud by skutečně bylo efektivnější použít jednu mapu, ta dvě čísla prostě rovnou spojte do jednoho Stringu.

2539
Kedysi v Delphi sa dalo jedno 32 bitové číslo  rozdeliť na dve 16 bitové (funkcie Hi a Lo). Ako sa to robí v JS? Pomocou bitových posuvov? Viete mi dať prosím príklad? Aj na spojenie aj na rozdelenie.
Dá se to udělat pomocí bitového posunu: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators A nebo pomocí dělení a zbytku po dělení.

Ale ak by sa dalo tak 2  32 bitové čísla spojiť na jedno 64 bitové. a poprosil by som nejaký najefektívnejší spôsob.
Bitové posuvy se v JavaScriptu dělají nad 32bitovými čísly, a typ Number je 64bitový double. Takže byste to musel implementovat pomocí Stringl nebo ArrayBufferu.

Efektivitu v tomhle případě nemá smysl řešit. Za prvé tu operaci asi nebudete provádět moc často, když to děláte v JavaScriptu. Za druhé jste v JavaScriptu moc daleko od strojového kódu. Dnešní „interprety“ JavaScriptu v prohlížečích dělají JIT (Just-in-time) kompilaci do strojového kódu – buď ten kompilátor pochopí, o co vám jde, a přeloží to efektivně, nebo to nepochopí. To ale vůbec nezáleží na tom, jak „efektivně“ to bude napsané, ale jenom na tom, zda rozpozná vzor, který jste použil.

https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type

2. druhá otázka je k číselným typom v JS. JS má len jeden číslený typ number a to je alternatíva k typu float alebo decimal?
Je to alternativa k double.

Ale upřímně řečeno, je dost divné, že chcete takovéhle operace provádět v JavaScriptu a navíc pomocí typu Number. Bylo by lepší, kdybyste popsal, jaký problém řešíte, protože je dost pravděpodobné, že jste zvolil nevhodné řešení.

2540
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 29. 04. 2019, 13:19:18 »
Ale tento tabletový podpis veľmi ťažko dokáže potvrdiť, že dotyčný si prial podpísať práve toto znenie dokumentu.
Dokáže to velmi snadno. Aplikace zobrazí PDF, nechá uživatele namalovat podpis, ten vloží do PDF a výsledné PDF podepíše svým privátním klíčem. Pokud ta aplikace neumožní vložit tam podpis jiným způsobem a privátní klíč je chráněn tak, aby nebylo možné ho s rozumnými náklady získat, je to spojení podpisu s dokumentem dostatečně spolehlivé.

2541
Mockrát Vám děkuji. Ta Vaše vysvětlení jsou pro mě (jako člověka, co s tím nikdy nepracoval) velmi pochopitelná.
Děkuji. Pro mne je to důležitá informace, že to vysvětlování má smysl a že to je srozumitelné. Abych si tu jen tak nepsal něco, čemu z 90 % nebude rozumět :-)

Čili navrhujete: Aby REST api bylo zabezpečené přes Oauth2 - tím způsobem, jak jste popisoval. Čili na serveru se vytvoří nějaký elektronický dokument podepsaný, který pošle na klienta a ověřuje ho podle podpisu.
Ano. Ten dokument, který se používá v OAuth2 protokolu, se nazývá JWT – JSON Web Token. Jeho generování a ověřování nebudete implementovat, ve Springu už jsou knihovny, které to implementují. Vy to musíte jen nakonfigurovat (jaké klíče se mají použít apod.) a implementovat věci, na kterých to generování a ověřování závisí. Např. když se uživatel přihlásí jménem a heslem, Spring zavolá vaší službu, které předá to jméno a heslo, vy implementujete vyhledání uživatele v databázi, ověření hesla a zjištění dalších údajů o uživateli (třeba jeho plné jméno a role) a tyhle údaje vrátí vaše služba Springu, a ten už z toho ten JWT vyrobí.

A FB/Google přihlášení byste do toho nedoporučoval? Že jste psal, že se bude míchat Oauth2 na dvou nesouvislých místech?
Že se to bude míchat na dvou místech bylo myšleno tak, aby vás nemátlo, že se ten protokol může v té aplikaci použít dvěma způsoby, které spolu nijak nesouvisí. Je spoust aplikací, které používají OAuth2 pro zabezpečení svých REST služeb, a přihlášení přes FB  nebo Google neimplementují. A naopak je spousta aplikací, které implementují přihlášení přes FB nebo Google, ale jiným způsobem OAuth2 nepoužívají.

Já osobně bych doporučoval v takové aplikaci mít implementované přihlášení minimálně přes FB, Google, MojeID a asi i Twitter, protože zejména u aplikací, které používám jen občas, je otravné přihlašovat se jménem a heslem. A to používám správce hesel, takže pro mne je to přihlášení jednodušší, než pro většinu lidí, kteří si musí nějaké heslo vymyslet a pak si ho pamatovat. Ale to přihlášení přes systémy třetích stran je volitelná funkce, dá se doplnit kdykoli později – spíš je to další funkce, kterou můžete přidat, když se budete chtít naučit něco dalšího.

A pokud by se mi podařilo do té aplikace toto implementovat + to hashování hesla + ty role, tak by to dle Vás bylo bezpečnostně v pořádku? Samozřejmě ještě nevím, co s tím https potom...
Z hlediska autentizace by to mělo být v pořádku, protokoly, o kterých se bavíme, jsou prověřené, implementace použitá ve Springu pokud vím nemá žádné známé bezpečnostní problémy. Jinak je ale potřeba bezpečnost řešit u každé části aplikace, nedá se říct, že by aplikace použitím nějaké technologie byla bezpečná. Vždy musíte počítat např. s tím, že uživatel v prohlížeči sice může zadat např. jen číslo, ale schopnější uživatel si umí z prohlížeče ten JWT vytáhnout a zavolá tu vaší RESTovou službu jinak, a místo čísla tam dá text nebo ho nevyplní vůbec. Aplikace v takovém případě má vypsat chybu ale hlavně nesmí udělat žádnou operaci, na kterou uživatel nemá oprávnění.

Aplikace ve Springu se myslím většinou nevystavují přímo do internetu – obvykle tam bývá předřazený proxy server (třeba Nginx). Na tom předřazeném serveru se nakonfiguruje HTTPS (a přesměrování z HTTP na HTTPS), ten proxy server pak už může komunikovat se Springovou aplikací nešifrovaným HTTP – běží buď na stejném serveru nebo ve stejné síti. A i kdyby ta Springová aplikace měla (sama) běžet přes HTTPS, je to jen otázka konfigurace, té aplikace se to nijak nedotkne. Ve frontendové části aplikace se HTTPS vyřeší ještě snadněji, tam jde jenom o to v URL pro volání RESTových služeb použít protokol https a ne http. A samozřejmě je potřeba i tu frontendovou aplikaci servírovat ze serveru přes HTTPS – u malé aplikace to může dělat ten samý server, který dělá proxy server té backendové Springové aplikaci. Tj. pak máte třeba Nginx server, na něm je nakonfigurované HTTPS a s tím serverem komunikuje webový prohlížeč. Ten Nginx jednak poskytuje (statické) soubory frontendové aplikace, a jednak určité URL (třeba https://example.com/api/*) přeposílá na tu backendovou aplikaci ve Springu.

2542
Autentizace říká, kdo je přihlášený uživatel. Způsobů autentizace můžete mít několik vedle sebe. Jeden asi bude jménem a heslem – uživatel zadá na formuláři jméno a heslo, vy ho podle jména v databázi vyhledáte a ověříte heslo. Když použijete přihlašování přes třetí stranu (např. Facebook), při registraci si opět uložíte údaje o uživateli do databáze, pak ho necháte přihlásit se přes Facebook a Facebook vám vrátí nějaký (pro Facebook) unikátní identifikátor toho uživatele. A ten vy si uložíte k tomu uživatelskému profilu do databáze. Když se příště přihlásí přes Facebooku, Facebook vám zase vrátí to samé ID a podle toho vy si v databázi najdete, který je to uživatel. Takže v databázi budete mít nejspíš nějakou tabulku s uživatelským profilem (třeba jeho jméno, příjmení a e-mail), vedle toho jinou tabulku se jménem a heslem a další tabulku s ID z Facebooku. A k jednomu profilu můžete mít uložený jak záznam v tabulce se jménem a heslem, tak záznam v tabulce Facebooku – uživatel si pak může vybrat, kterou variantou se přihlásí.

HTTP je ale bezstavový protokol, tedy normálně by uživatel musel zadávat své jméno a heslo (nebo se přihlašovat přes Facebook) s každým požadavkem, který se pošle na server. To samozřejmě nikdo dělat nebude – místo toho server uživatele ověří jednou a na základě toho předá klientovi nějakou informaci, kterou pak klient posílá s každým dalším požadavkem. A podle ní server pozná, že jde o toho přihlášeného klienta. Dříve se to dělalo tak, že server přidělil přihlášenému uživateli nějaké unikátní číslo (nazývané třeba session ID), a někam si poznamenal, že tohle session ID je uživatel třeba Franta Novák. Pak session ID poslal klientovi a ten ho přidával jako cookie do každého dalšího požadavku na server. Server si podle toho session ID z cookie dohledal příslušný záznam a z něj si přečetl, že s tímhle session ID je přihlášený uživatel Franta Novák. To má tu nevýhodu, že musí být na serveru to úložiště session ID, takže můžete mít jenom jeden server, nebo – když jich máte víc – potřebujete mezi nimi sdílet to úložiště session ID.

A tady do toho vstupuje ten OAuth2 protokol. Místo toho, aby si server poznamenával session ID, tak vytvoří elektronický dokument (ve formátu JSON), který říká „přihlášený uživatel je Franta Novák“, a případně k tomu doplní další údaje. A tenhle dokument elektronicky podepíše a pak ho i s tím podpisem předá klientovi. Klient pak ke každému požadavku nepřidává session ID, ale tenhle elektronicky podepsaný dokument, kterému se říká (autentizační) token (ve skutečnosti je velmi krátký, desítky znaků). Když ho dostane server, ověří ten podpis, a pokud sedí, ví, že může důvěřovat té informaci „přihlášený uživatel je Franta Novák“. Tím pádem si server nemusí pamatovat žádné session ID, ale i když budete mít 80 serverů po celém světě, pokud bude každý z nich umět ověřit ten elektronický podpis, dokáže bezpečně zjistit, že jde o toho správného uživatele.

Ve vašem případě je pro tu autentizaci REST požadavků OAuth2 trochu kanón na vrabce, ale je to průmyslový standard, se kterým umí zacházet spousta knihoven a frameworků. A Spring už má podporu v sobě, takže nemusíte nic implementovat, jenom to nakonfigurujete. V dokumentaci Springu Spring Security Reference jsou ty varianty použití OAuth2 popsané.

Druhá věc je, že OAuth2 se používá i přitom přihlašování třeba přes Facebook, ale to s tou autentizace REST požadavků nesouvisí. Vlastně byste tam měl OAuth2 použité na dvou nesouvisejících místech – pro přihlášení přes Facebook a pro autentizaci REST požadavků.

Aby vám fungovala anotace @Secured(role), musíte implementovat rozhraní UserDetailsService, kde je metoda, která vrací uživatele a jeho role. Ve vašem případě je nejjednodušší podle předaného identifikátoru si uživatele dohledat v databázi a z ní načíst i odpovídající role.

S OAuth2 by se to dalo udělat i tak, že se ty role načtou při přihlášení uživatele a přidají se do toho autentizačního tokenu, který se pak posílá s každým požadavkem. Díky tomu podpisu pak server ví, že tomu seznamu rolí může důvěřovat. To se ale používá spíš v případech, kdy máte oddělený server, který dělá autentizaci, a server, který poskytuje vlastní služby. Ten server pak nemusí vědět nic o uživatelích, prostě se jenom řídí tím, co je v tom tokenu.

2543
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 21:57:59 »
Praveze jsem ho cetl. Mozna pozorneji nez vy.
To asi těžko. Já jsem ten dotaz četl celý, i se závorkami. Na rozdíl od vás.

Resi, jak obraz zobrazit na tabletu:

1. Ako poslat obraz (vyplneny dokument, ...) do tabletu, ktory nema graficky vstup?
- obraz, nikoli dokument.

A v odpovědi č. 5 akceptoval jako dobré řešení to popsané v komentáři č. 2:
My na niečo podobné používame tablet Samsung galaxy tab S3 + S Pen. Podpisujeme výhradne PDF súbory, ktoré sú pred podpisom uložené na zdielanom disku a následne  k podpísaniu používame software Write on PDF, ktorý je dodávaný s tabletom.

Hlavně, že jste to citoval… Vidíte tam něco o přenosu obrazu? Vidíte tam něco o podepisování mimo ten dokument? Já tam tedy vidím to, že jedna aplikace v tabletu zobrazí dokument a přímo v té aplikaci se zákazník podepíše a aplikace podpis rovnou připojí k tomu PDF dokumentu.

Cili boardshepherd zminuje zpusob, ktery pro interni ucely muze stacit a johan ho vezme jako super zpusob pro reseni neceho se zakazniky, kde mi to vubec smysl nedava.
Interní zaměstnanci mohou pravost podpisu rozporovat úplně stejně jako zákazníci. Naopak by nejspíš měli větší znalosti o tom, jak ten systém funguje, a zaměstnavatel by měl víc příležitostí podpis zfalšovat.

Nevim jak vy, ale ja z toho teda moc nechapu, co si OP presne predstavuje, jak by to melo fungovat - jakou roli v tom ma hrat tablet, jakou Ubuntu PC. Proto me to zajima a diskutuju o tom.
Pokud vás to zajímá, měl jste si tu diskusi přečíst. Od začátku. Chce z počítače do tabletu s Androidem dostat PDF soubor, zobrazit ho zákazníkovi a umožnit mu perem jej podepsat. Ostatní alternativy už dál neřešil.

Moc to nevypadá, že by vás to zajímalo a chtěl jste o tom diskutovat. Spíš to vypadá, že musíte za každou cenu oponovat, i když ani nevíte, co je podpis.

Dela to na me dojem, ze si OP predstavuje reseni, ktere mu ve finale stejne nebude z pravniho hlediska poskytovat nic vic nez ustni jednani.
Rozdíl oproti ústnímu právnímu jednání už jsem vám vysvětloval. Nemůžete se na to pořád dívat binárně. To, že něco neposkytuje absolutní jistotu, neznamená, že to neposkytuje žádnou jistotu. Ostatně absolutní jistotu vám neposkytne ani úředně ověřený podpis. I u něj může zákazník tvrdit, že ten dokument nikdy neviděl.

A kdybysme neztravili tolik casu kroucenim se kolem faktury, mohlo se diskutovat o tom, proc si johan mysli, ze to je dobre reseni...
No jo, když se ukázalo, že píšete nesmysly o podpisech, začal jste se kroutit kolem faktury. K diskusi o tom, proč si johan 9 myslí, že je to dobré řešení, není důvod. Jediná věc, která se tu mohla řešit, je vysvětlit vám, co je to podpis. O to už jsem se pokusil, takže teď je to na vás, abyste to vstřebal.

Howgh.

2544
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 21:06:11 »
Pokud vezmu obycejne PC, v nem vytvorim dokument a ukazu ho zakaznikovi na monitoru, tak je mi houby platny, ze to podepise na "bezpecnem" "podepisovacim" tabletu. To samo o sobe nic nezarucuje. O to mi presne celou dobu slo
Přečtěte si konečně ten původní dotaz. Nebo tu část, kterou jsem z něj citoval v předchozím komentáři.

2545
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 20:18:43 »
To uz se zase vracime k necemu, co uz jsem taky psal: kdybych to byl ja, vysvetlil bych to velice snadno: ten podpis jsem mel roky kdesi na internetu.
Tak ho ukažte. Jo už jste ho smazal? A proč jste vůbec měl na internetu podpis napsaný na tabletu?

Je fakt rozdil mit smlouvu na urok za 5 a za 50 procent.
Takovouhle věc by zákazník dostal určitě v kopii vytištěnou. A opět – vy byste tvrdil, že tam určitě bylo 5 % ale papír jste ztratil, firma by tvrdila, že tam bylo 50 %, měla by příslušný dokument a váš podpis. Kdo by tahal za kratší konec provazu?

1. nemam zadny dukaz, ze uzivatel videl ten dokument, ke kteremu jsem pripojil podpis.
Opět, všichni zákazníci před ním a po něm viděli nějaký dokument, jenom tenhle jeden zákazník viděl jiný?

2. Podpis v obrazku jsem mohl mit pripraveny predem, v ten den jsem ho jenom spojil s dokumentem.
Nemyslím si, že byste jen tak chodil po firmách a bianko se jim podepisoval na tablety, aby až s nimi za několik let uzavřete smlouvu, měly váš podpis předem přichystaný pro falšování.

Ale pokud jsem tazatele pochopil spravne, mluvil o normalnim pocitaci, na kterem bezi treba LibreOffice a normalnim tabletu ve smyslu "digitizer" - tj. neni na nem display.
Nikoli, psal o zobrazení podepisovaného dokumentu přímo na tabletu a jeho následné podepsání. Pro zobrazení dokumentu z počítače tam není prostor:

vyplneny dokument zobrazim na tablete, ktory bude na stole pred zakaznikom a ten ho podpise fyzicky priamo na tablete

Když si na Google Play dáte hledat „sign pad“, najdete docela dost aplikací, které přesně tohle dělají. Našel jsem třeba Sign Now, kde se chlubí, k čemu se to používá a s jakou legislativou je to kompatibilní. Nevypadá to úplně na hračku, kterou by nikdo nebral vážně.

Ale je i mozny, ze je to PDA je udelane tak, ze je (pro danou situaci) dostatecne bezpecne vyloucena pozdejsi manipulace s dokumentem a podpisem.
K tomu stačí, aby ta aplikace neumožňovala zmanipulovat podepisovaný dokument, a aby z ní nešel běžnými prostředky získat privátní klíč. Myslím, že Android už má nějaké bezpečné úložiště, které takové požadavky splňuje. Jinak by asi banky nebyly moc ochotné přes to dělat NFC platby a ukládat čísla karet a přístupové údaje do banky.

2546
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 19:37:46 »
Za to vy jste nepřekvapil… A nevím, čemu se divíte – pořád mi vytýkáte nepřesné nebo zavádějící formulace, ale kdybych v kontextu té původní diskuse napsal o takové faktuře, která vůbec nic neznamená, to by bylo zavádějící.

nějaký jeden vytisknutý papír by ho netrápil
Z úvodního popisu i z logiky věci je ten vytištěný papír ten nejmenší problém. Jde o to, že to pak musíte skenovat, naskenovaný dokument je mnohem větší, nemůžete z něj kopírovat text, vyhledávat v něm… A musíte pak archivovat ty papírové originály.

3. Čili předpokládám, že se bavíme o případu, kdy by ústní forma byla dostačující. Potom se musím ptát, proč ji OP nechce zvolit. A jediný důvod, který mě napadá, je, že chce mít nějaký důkaz pro případ sporu se zákazníkem. Proto jsem tam dal to "v případě sporu".

No a jediné, co jsem řekl, je, že ten způsob s obyčejným tabletem, který vytvoří obrázek podpisu, tazateli žádný důkaz neposkytuje, čili neplní účel. Pokud by chtěl důkaz, potřebuje něco silnějšího než text na monitoru a podpis tabletem.
Pokud by byla dohoda uzavřena ústně, nemá johan 9 v ruce vůbec nic. Takhle má ten dokument a obrázek. Pokud by  zákazník chtěl rozporovat, že vůbec s ničím nesouhlasil, těžko by vysvětlil, jak se johan 9 dostal k tomu podpisu. Pokud by zákazník chtěl rozporovat znění té smlouvy, těžko by vysvětlil, jak to, že všichni ostatní zákazníci podepsali to samé a zrovna on podepisoval něco jiného (předpokládám, že jsou to nějaké typizované dokumenty).

Navíc je možné vytvořit záznam spojující ten konkrétní dokument a obrázek, a ten záznam (nebo třeba soubor záznamů jednou za den) opatřit časovým razítkem. Pak budete mít důkaz, že to spojení existovalo už v ten den podpisu, tedy že jste nepřenesl podpis někam jinam dodatečně. Nebo to svázání dokumentu s obrázkem může dělat aplikace v tom tabletu a podepsat to svým privátním klíčem. Pak spolehlivost důkazu závisí na tom, jak pracné bude získat ten privátní klíč.

2547
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 17:53:59 »
Ale když tolik trváte na omluvě, já se omluvit umím. Omlouvám se, že jsem jako příklad dokumentu, který má jinou váhu v závislosti na tom, zda je nebo není podepsaný, uvedl zrovna fakturu. Pokud se při čtení té věty nevěnuje moc pozornosti kontextu diskuse, je možné ji chápat i tak, že faktura musí mít nějaký podpis vždy. Což není pravda, faktura, která je jen daňovým dokladem, podepsaná být nemusí; stejně tak nemusí být podepsaná faktura, která nemá žádnou legální relevanci a je prakticky jen soupisem platebních údajů – a takové dokumenty se také běžně nazývají fakturou (dokonce je to původní význam tohoto slova).

Abyste neměl problém s významem toho původního textu, tady máte opravenou verzi:
Citace
Přidal jste dost podstatnou věc – „v případě sporu“. Jenže písemně uzavřené smlouvy musí mít podpis, účetní doklady musí mít podpis (může být připojen i hromadně k souboru dokladů) – takže i jen naskenovaný podpis přidává tu hodnotu, že je ten dokument platný.

2548
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 17:36:32 »
A to právě není pravda. Mám vám znovu napsat proč, nebo si to přečtete o příspěvek výš?
O příspěvek výš jsme se dozvěděli akorát to, že nevíte, jak se uzavírá přepravní smlouva. Příklad reálných ústně uzavíraných rozsáhlých smluv jste nějak opomněl napsat.

Bavili jsme se o
Naštěstí se můžeme podívat, o čem jsme se bavili:
Přidal jste dost podstatnou věc – „v případě sporu“. Jenže písemně uzavřené smlouvy musí mít podpis, faktury musí mít podpis – takže i jen naskenovaný podpis přidává tu hodnotu, že je ten dokument platný.
Ani slovo o "účetním dokladu". Ani slovo o účetním případu. Ani slovo o knize došlých faktur, podepsané jednou týdně.
Naštěstí se můžeme podívat, o čem jsme se doopravdy bavili:

Já sám taky vydávám některé dokumenty, kam dávám podpis v obrázku, ale zároveň vím, že to je jenom takový kolorit, ten obrázek tomu dokumentu (v případě sporu) nic nepřidá (ani neubere, na druhou stranu).
Přidal jste dost podstatnou věc – „v případě sporu“. Jenže písemně uzavřené smlouvy musí mít podpis, faktury musí mít podpis – takže i jen naskenovaný podpis přidává tu hodnotu, že je ten dokument platný.
Rozporoval jsem vaše tvrzení, že podpis–obrázek dokumentu nic nepřidá. Jenže faktura bez podpisu nesplňuje náležitosti účetního dokladu, faktura s podpisem splňuje náležitosti účetního dokladu. Myslím, že to, jestli něco je nebo není platný účetní doklad je docela podstatné. Že ten podpis přidává docela podstatnou vlastnost.

Ano, přesně to je faktura. Například když mi ČEZ pošle fakturu za elektřinu, vypadá to přesně takhle.
Kdyby vám ČEZ poslal jenom vyúčtování, kdo by byla uvedená částka, číslo účtu a variabilní symbol, bylo by to z vašeho pohledu úplně stejné. A kdyby měl ve smlouvě, že si máte vyúčtování udělat sám na základě údajů, které si odečtete z elektroměru, nemusel by vám posílat vůbec nic. Akorát jaksi na dokumentech, které právně vůbec nic neznamenají, jaksi nemá smysl zkoumat význam podpisu.

Výborně, tak jste to konečně pochopil. Omluva teda bude?
Omluva za co? Z kontextu diskuse bylo i vám jasné, o čem je řeč, jak ukázala vaše první reakce. Až pak jste se z toho snažil vybruslit a tvářil jste se, že vůbec netušíte, co tou fakturou bylo myšleno. Vy se za ty nesmysly o uzavírání přepravní smlouvy a hlavně o podpisech, což byla podstata původní debaty, omlouvat budete?

2549
Software / Re:Vlastnoruční podepisování přes tablet
« kdy: 27. 04. 2019, 15:50:39 »
"Pouze" znamená "jenom". Nepíšete, že "je to nepraktické", píšete, že je to možné "pouze" když X. Což není pravda.
Ne, nepíšu, že je to možné „pouze“. Píšu, že reálné je „pouze“. Tedy že reálně, v praktickém životě, se ústní uzavření smlouvy používá pouze pro velmi jednoduché smlouvy. Možnost uzavřít ústně složitou smlouvu jsem nevyloučil, pouze jsem napsal, že reálně se s tím asi nesetkáte.

Ne-písemně se dají uzavírat i složité smlouvy, vždyť jste to sám napsal na příkladu přepravní smlouvy.
Já jsem ovšem psal o přepravní smlouvě, kterou uzavíráte nástupem do vozidla. To není ústní uzavření smlouvy.

BTW, i tady jste to napsal nejspíš nepřesně, protože jste nezmínil nákup jízdenky. Nejsem si jistý, jestli můžu pouhým nástupem do vozidla uzavřít přepravní smlouvu, když jsem před tím neměl nikde možnost vidět přepravní podmínky.
Ano, to je takový kolorit této diskuse. Já si předem ověřím v zákoně, než něco napíšu, a vy s tím pak začnete polemizovat, že je to asi nepřesné a že si myslíte, že je to jinak. Tak si to v tom zákoně laskavě najděte, když už jste se s tím nenamáhal před tím, než jste začal něco zpochybňovat.

No a stejně tak "polo-pravdivě" jste to napsal i s tou fakturou. Faktura je faktura svým účelem, vzniká tím, že ji vystavím a jako účetní doklad může sloužit - přijemci (!), pokud ji u něj podepíše člověk "zodpovědný za účetní případ" a účetní. Tím se ale faktura nestává fakturou, tím se faktura stává účetním dokladem.
Bavili jsme se o dokumentech, které mají alespoň nějakou minimální závažnost, vystupují v právních vztazích, je u nich možné zkoumat platnost apod. Pokud nemusíte vystavovat daňové doklady podle zákona o DPH, to vaše „vystavení faktury“ znamená akorát to, že někomu napíšete na kus papíru platební údaje, aby je někde nemusel lovit. Taková „faktura“ je závažná asi tak stejně, jako milostná psaníčka žáků ZŠ nebo „verše“ napsané na druhé straně účtenky z hospody. Zajímavá začne být až tehdy, pokud se ji příjemce rozhodne použít jako doklad prokazující účel vynaloženého nákladu a jako účetní doklad ji zařadí do účetnictví. Aby byla v účetnictví platná, musí mít všechny náležitosti účetního dokladu, tedy i podpis osoby odpovědné za účetní případ (může být nahrazeno podpisem souboru účetních dokladů). Když majiteli firmy do složky podepsaných faktur k proplacení přimícháte nepodepsanou fakturu, samozřejmě vás s ní vyhodí, protože nebude proplácet každou fakturu, kterou někde někdo našel, ale proplatí jenom takové, které prošly nějakým procesem, někdo je schválil, někdo zkontroloval, že splňují všechny náležitosti – a na závěr účetní svým podpisem stvrdí, že tohle všechno proběhlo a je to platný účetní doklad.

Něco jiného je to u plátců DPH, kteří jsou povinni vystavovat daňové doklady. Ti opravdu vystavují faktury jako daňové doklady, přičemž vystavení daňového dokladu jim ukládá zákon – v takovém případě skutečně faktura je podstatným dokladem, není to jen cár papíru jako ta vaše „faktura je faktura“. Faktura jako daňový doklad podepsaná být nemusí. Škoda, že jste nenapsal tohle, místo těch nesmyslů.

Jinak samozřejmě smlouva i faktura bez potřebných náležitostí je pořád smlouva nebo faktura, akorát nemají platnost smlouvy nebo faktury. Stejné je to u všech ostatních věcí v právu. Zákon před začátkem platnosti nebo účinnosti nebo po svém zrušení je pořád zákon, akorát není platný a účinný. Není to žádný nezákon.

O úletu s podpisem v ASCII už ani nemluvě...
Opět – nastudujte si to. Podpis je jméno osoby připojené k nějakému dokumentu. Na formě nezáleží. Když napíšete něco na papír rukou a na konci uvedete své jméno, je to podpis; když to napíšete na stroji a na konci rukou nebo strojem napíšete své jméno, je to podpis; když do patičky e-mailu napíšete „Mirek Prýmek“, je to (elektronický) podpis; když tam připojíte obrázek s naskenovaným podpisem, je to (elektronický) podpis; když ho podepíšete certifikátem, kde je uvedené vaše jméno, je to (elektronický) podpis. V některých případech nemůžete použít libovolný podpis ale je potřeba buď vlastnoruční podpis nebo kvalifikovaný elektronický podpis, v ještě závažnějších případech dokonce ověřený podpis.

Jsou to všechno drobnosti, kdybyste si nevymýšlel výmluvy a demagogie, řekl jednoduše "jasný, tohle jsem nenapsal úplně dobře", mohli být hotovo. To vaše vykrucování se a krkolomné zdůvodňování začíná být ale docela poučné a zábavné, budeme v tom dál pokračovat? :)
Jsou to všechno drobnosti, kdybyste si nevymýšlel, že jsem to nenapsal úplně dobře, ale přečetl si pořádně, co jsem napsal, a podíval se na to do zákona, tahle diskuse by vůbec neexistovala, protože byste neměl co psát.

Vykrucujete se a krkolomně zdůvodňujete akorát vy – myslel jste si, že jsem napsal, že faktura musí být podepsaná vystavitelem, a když jsem vás upozornil, že jsem to nenapsal a myslel jsem podpis účetního u příjemce faktury (protože tam je faktura důležitá – na fakturu jako daňový doklad jsem zapomněl), začal jste neuvěřitelné výkruty s nefakturami a „faktura je faktura“.

I když chápu, že jste chtěl z diskuse o podpisech odvést pozornost k něčemu jinému, když se ukázalo, že nevíte, co je to podpis. To je pro tuto diskusi poněkud důležitější, než definice faktury.

2550
Použít jen HTTPS (a z HTTP udělat jen přesměrování na HTTPS) je jen otázka konfigurace webového serveru. Autentizaci přihlášením klientským certifikátem přes HTTPS bych nedělal, podpora v prohlížečích je špatná. Ne že by to neodporovaly, ale UX je otřesné. Například Chrome vyžaduje od uživatele každých pár minut PIN k čipové kartě s uloženým certifikátem, pokud se používá TLS 1.3, protože dohodnutí nových parametrů TLS dělají opravdu důkladně až k té nové žádosti o PIN.

Pokud použijete jen jQuery, musíte si napsat sám spoustu věcí, které vám jinak poskytují ty frameworky. Angular je už dost velký framework, myslím, že by stačilo i něco lehčího – třeba Vue.js. Myslím, že se ho člověk naučí docela rychle a postará se za vás o ty dvě nejnudnější věci, které musíte pořád řešit v čistém JavaScriptu – propojení dat v JavaScriptovém objektu na HTML prvky (vstupní políčka formulářů a výstup) a spouštění akcí.

Pro autentizaci volání RESTových služeb jsem navrhoval použít protokol OAuth2, který k RESTovým požadavkům přidává JWT –JSON Web Token. V něm jsou zakódované údaje, které předal autentizační server, jsou jím podepsané a obvykle obsahují časovou značku. Autentizační server tedy vystaví JSON, ve kterém je uvedená identifikace uživatele (nějaké ID, login, e-mail apod.), může tam přidat další údaje jako třeba role uživatele a nastaví platnost tokenu třeba na 15 minut a celé to podepíše. REST server pak ověří podpis a časovou platnost toho tokenu a vytáhne si z něj potřebné údaje (např. ten login).

Hesla se na serveru nešifrují ale hashují, tj. z hashe nelze zpět získat původní heslo. Existují speciální hashovací funkce určené pro hesla, kterým tedy já osobně moc nevěřím, protože nejsou kryptograficky prověřené. Takže bych raději použil standardní SHA-256. Důležité je to, že se nehashuje samotné heslo, ale kombinace heslo+sůl+pepř. Sůl je nějaký náhodný text unikátní pro každé heslo a je uložený spolu s heslem. Pepř je také náhodný text, který ale vůbec není uložený v databázi, je někde v konfiguraci aplikace. Kdyby útočník získal databázi, nebude znát pepř a nemůže tedy zkoušet hesla hádat. Kdyby získal databázi i pepř, může zkoušet hesla hádat – zkusí nějaké heslo, k němu zná pepř i sůl, vypočítá hash a porovná ho s tím v databázi. Díky soli ale musí hádat každé heslo zvlášť. Když se nepoužije sůl ani pepř, může útočník použít tzv. duhové tabulky – tabulky, kde je ke spoustě hesel už vypočítaný hash. Pak mu stačí projít databázi a všechny uložené hashe hledat v těch duhových tabulkách. U jednoduchých hesel uspěje a získá tak hesla konkrétních uživatelů. Pokud byste chtěl o bezpečném ukládání hesel vědět víc, hodně o tom píše a přednáší Michal Špaček.

Co se týče SQL injection, takovou chybu musíte spíš pracně vyrobit – sám, nebo použitím nevhodného nástroje. SQL injection vzniká tak, že v programu skládáte ručně do textového řetězce SQL příkaz a jeho parametry. Třeba "SELECT * FROM table WHERE id = " + request.getId(). Když použijete JPA nebo Spring JDBCTemplate a parametry budete do SQL dotazů předávat pomocí mapování, SQL injection nemůže nastat (samozřejmě pokud není nějaká chyba v použitých knihovnách a nedělají to skládání řetězců interně v té knihovně).

Pro uživatelské role máte nejjednodušší použít Spring Security – poskytnete implementaci, která pro zadaného uživatele vrátí seznam jeho rolí, a pak už jenom stačí každou metodu REST controlleru označit anotací, ve které uvedete seznam rolí, které tu metodu smějí volat.

Stran: 1 ... 168 169 [170] 171 172 ... 375