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 ... 167 168 [169] 170 171 ... 375
2521
a jak to ještě funguje s CSRF? Řekněme, že bych použil Oauth2 k zabezpečení těch REST služeb. CSRF hrozí? Případně mu předpokládám je vhodné nějakým způsobem zamezit?
CSRF spočívá v tom, že v okamžiku, kdy je uživatel přihlášen do aplikace, přinutíte prohlížeč, aby poslal platný požadavek včetně autentizačních údajů. To funguje například tehdy, když je přihlášený uživatel identifikován pomocí cookie – prohlížeč ji přibalí automaticky k požadavku, i když byl požadavek odeslán z jiné webové stránky. Při použití OAuth2 se ale autentizační token obvykle posílá v hlavičce Authorization a o jeho přiložení se musí postarat ten kód, který tu RESTovou službu volá – tj. nedělá to prohlížeč automaticky. Tedy případný útočník by musel autentizační token také připojit k požadavku ručně – ale to by jej nejprve musel získat. Pokud bude uložený např. jen v JavaScriptové aplikaci na klientovi, tak token získat nemůže (pokud v té aplikaci není speciální kód, který by to umožnil). Případně může být ten token uložen v Session Storage nebo Local Storage – ty jsou vázané na doménu, takže útočící skript z jiné domény se k nim nedostane. Nicméně pokud by pod jednou doménou běželo několik aplikací, ty už by si mohly navzájem číst Session Storage nebo Local Storage. Ale pokud poběží víc aplikací pod jednou doménou, těch způsobů, jak se navzájem ovlivnit, je mnoho – takže bych buď počítal s tím, že na dané doméně bude aplikace samotná, a nebo tam budou jen důvěryhodné aplikace.

2522
děkuji...tohdle mi je jasné, ale já nedokážu ty hodnoty klíče iterovat na tu událost
hodlám to celé předělat v Rails, ale zatím experimentuju s původní verzí
Vždyť jste sem sám dával kód, který tu iteraci přes obsah toho JSONu dělá. Stačilo ho upravit, aby to HTML nevytvářel prasácky spojováním textů, a to navěšení události by vám pak vyplynulo samo. Třeba takhle:

Kód: [Vybrat]
function createTable1(json) {
    var table = $("<table>", { id: 'kw-list' }); //tabulka má id, takže je zbytečné cpát jí inline styly, lepší je ostylovat to id v externím stylu
    var thead = table.append($("<thead>"));
    var tr = thead.append($("<tr>"));
    tr.append($("<th>", { id: 'listOfKW', colspan: 10, text: 'List of the KW' }));
    tr = thead.append($("<tr>")); //opět lepší nastylovat přes externí CSS
    tr.append($("<th>", { class: 'listOfKW', text: 'Letter' }))
        .append($("<th>", { class: 'listOfKW', text: 'Commission' }))
        .append($("<th>", { class: 'listOfKW', text: 'Status' }))
        .append($("<th>", { class: 'listOfKW', text: 'KW' }))
        .append($("<th>", { class: 'listOfKW', text: 'P' })) //měl jste tam id, ale to musí být v rámci dokumentu unikátní
        .append($("<th>", { class: 'listOfKW', text: 'CAD' })) //měl jste tam id, ale to musí být v rámci dokumentu unikátní
        .append($("<th>", { class: 'listOfKW', text: 'NEST' }))
        .append($("<th>", { class: 'listOfKW', text: 'SAP' }))
        .append($("<th>", { class: 'listOfKW', text: 'SENT' }));
    var tbody = table.append($("<tbody>"));
    $.each(json, function (index, row) {
        tr = tbody.append('<tr>');
        tr.mouseover(function () {
            nhpup.popup(row.Items);
        });
        $.each(row, function (key, value) {
            $('<td>', { class: key + ' ' + value, text: value }) //opět styl v externím CSS
                .appendTo(tr);
        });
    });
    $('#eachTable').append(table);
}
(Je to napsané jen tak od oka, snad tam nebude moc chyb.)

Mimochodem, místo předělávání do RoR bych vám doporučil koupit si nějakou knížku se základy programování webu, abyste se dozvěděl, jak to celé funguje a co s čím souvisí. Každou chvíli se tu ptáte na nějaké detaily, přitom je z dotazů evidentní, že nerozumíte základům – tomu, jak to celé funguje. Slepováním kusů kódu, které vám někdo napíše na diskusním fóru, se programovat nenaučíte. Ptát se můžete na specifické věci, ale k pochopení toho, jak to celé funguje, potřebujete nějaký systematický výklad – ten z odpovědí na diskusním fóru nezískáte.

2523
problém není s eventem...ten se vyvolá
já hledám způsob jak si vzít konkrétní klíč a jeho hodnotu a tu vsadit do attributu html elementu
běžně používám:
< span onmouseover="nhpup.popup('tralala');">something</span>
potřeboval bych namísto 'tralala' dosazovat hodnotu konkrétního klíče
Ne, nechcete vsazovat hodnotu do atributu. Chcete nastavit posluchače události, který zavolá nějakou funkci a té předáte ten parametr.

Kód: [Vybrat]
const spanElement = $('<span>');
const value = 'tralala';
$(spanElement).mouseover(function event() {
  nhpup.popup(value);
});

Mimochodem, měl byste jednodušší použít na to nějaký framework, např. Vue, než to takhle patlat sám s jQuery.

2524
V jQuery se posluchači na událost onmouseover navěšují zavoláním metody jQuery mouseover().

Ten váš element td tedy sestavíte pomocí jQuery (ne takhle nepřehledně textově) a pak na něj pověsíte tu událost.

2525
Vývoj / Re:Debugování Spring aplikací
« kdy: 09. 05. 2019, 11:46:35 »
Rozumné IDE (třeba IntelliJ Idea) umožňuje ty nezajímavé třídy přeskakovat.

2526
Server / Re:PHP SQL problem s SELECT a OR
« kdy: 09. 05. 2019, 08:58:26 »
S tím vším se dá jen souhlasit, má to ale jeden praktický háček: v tomto konkrétním případě se nepoužívá hodnota přímo, ale odvozený řetězec (jsou tam přidaná procenta na začátek a konec).

Takže jedině něco jako:
Kód: [Vybrat]
SELECT * FROM users WHERE firstname  LIKE '%'||?||'%' OR lastname LIKE '%'||?||'%'
Děkuji za názornou ukázku toho, proč by se měli lidé rovnou učit používat bindování parametrů. To, co jste napsal, je celé špatně. Ten odvozený řetězec v PHP triviálně vytvoříte kódem "%" . $querystr . "%". Mně ten kód v PHP připadá asi tak stokrát čitelnější, než libovolné skládání v SQL.

V každém případě: tento dotaz vždy a v každé databázi dělá FULL TABLE SCAN! Takže pokud tam někdy bude netriviální množství uživatelů, tak se databáze utaví. Na druhou stranu, pravděpodobnost je asi malá :-)
V každé databázi ne, jenom v těch, které neumí LIKE přeložit na použití fulltextového indexu. Relační databáze to sice většinou nedělají a raději vás nechají použít speciální operátory pro fulltext, ale nezapomeňte, že i spousta NoSQL databází umožňuje používat pro dotazování jazyk SQL.

2527
Server / Re:PHP SQL problem s SELECT a OR
« kdy: 08. 05. 2019, 15:16:11 »
Dakujem spravna odpoved. Inak ten select je az za osetrenim SQL Injection.
Doporučuju rovnou se to naučit dělat správně pomocí bindování parametrů. „Ošetření SQL injection“ je jenom hack, který nemusí vždy fungovat správně, snadno se na něj zapomene a jenom zbytečně komplikuje kód. Ostatně je to vidět i na tomhle dotazu – vypadá to, že tam SQL injection je, vy ostatní ubezpečujete, že někde před tím kódem snad je nějaké ošetření. Což je přesně to, co udělá další programátor, až ten kód uvidí (nebo vy, až se k němu vrátíte po nějaké době) – budete doufat, že někde před tím je „ošetření“. A pak vám jednoho dne útočník ukáže, že tam nebylo.

2528
Server / Re:PHP SQL problem s SELECT a OR
« kdy: 08. 05. 2019, 11:01:10 »
Dobry den.

Potrebujem vytiahnut mena uzivatelov + priezvyska.
Kod vyzera takto
Kód: [Vybrat]
	$sql = "SELECT * FROM users WHERE firstname OR lastname LIKE '%$querystr%'";
Problem je ze sa to sprava tak akoby to preskocilo prvu premennu po WHERE proste ak zadam prve meno napriklad Janko nenajde nic ak dam Kocur najde mi pekne Janko Kocur. Skusil som to prehodit teda lastname je prve a firstname druhe. Napisem Janko najde Janko Kocur. Napisem len Kocur nenajde nic. Preco a ako to opravit?

OR se řadí mezi dva logické výrazy – když se přidají závorky, ten váš dotaz vypadá takhle:

Kód: [Vybrat]
SELECT * FROM users WHERE (firstname) OR (lastname LIKE '%$querystr%')

MySQL si s tím nějak poradí, firstname převede na logickou hodnotu (pravidla by se dala najít v dokumentaci).

Vy asi chcete toto:

Kód: [Vybrat]
SELECT * FROM users WHERE firstname  LIKE '%$querystr%' OR lastname LIKE '%$querystr%'

A mimochodem, takhle vkládat uživatelský vstup rovnou do SQL příkazu, to je ukázková SQL injection. Použijte bindování proměnných.

2529
Server / Re:Doporučte spolehlivý hosting
« kdy: 07. 05. 2019, 19:55:34 »
OVH je pruser, pokud objednavas v CZ - jdi na jinou jazykovou mutaci a i kartou budes moci platiti
Já objednávám v české mutaci OVH a můžu platit přímo kartou (alespoň před 14 dny to ještě fungovalo), přes PayU i převodem z české banky, přičemž převod z účtu u Fio na účet u Fio je okamžitý (myslím, že do Fio umí peníze poslat ihned i některé jiné české banky).

2530
Vývoj / Re:Ideálny programovací jazyk
« kdy: 05. 05. 2019, 18:27:16 »
Nejdřív bych si ujasnil, k čemu má vlastně ten jazyk sloužit. Pak bych řešil, jestli je kvůli tomu nutné vytvářet nový jazyk. Teprve na základě toho bych pak případně řešil nějaký tým odborníků a zadání.

2531
Vývoj / Re:JWT - riesenie pristupu v mikrosluzbach
« kdy: 04. 05. 2019, 15:44:50 »
Buď máte pár typů oprávnění (rolí), pak může být jejich seznam přímo součástí JWT. Nebo je rozhodování o oprávněních košatější, pak musí být konkrétní služba schopná podle ID uživatele, které dostane, určit, jaká oprávnění ten uživatel má. Uvádíte jako příklad seznam článků, které uživatel vlastní – pak toho vlastníka článku asi máte uloženého někde v databázi a příslušná služba si to musí umět načíst.

Teoreticky by ta služba mohla volat jinou službu na zjištění oprávnění, ale to by mi připadalo jako řešení „přes ruku“ – pokud ta služba potřebuje kvůli oprávněním znát vztah uživatel–článek, stejně nejspíš pracuje s databází, kde je tenhle vztah uložen. Ale tahle třetí možnost je spíš teoretická, neslyšel jsem o případu, kde by se to tak řešilo – v praxi se používá první nebo druhé řešení.

2532
Server / Re:Uložení zalomení řádku v MySQL
« kdy: 03. 05. 2019, 14:58:33 »
proč se vlastně ptám....
pokud to z DB vytáhnu pomocí PDO a předám zpět do textarea ...zalomení je automaticky provedeno
pokud to ale pomocí proměné vsadím třeba do div,p  ..tak je to jako jeden řádek
To je to, co jsem psal v předchozím komentáři. <textarea> chápe CRLF jako zalomení řádku. Obecně v HTML se ale jakákoli posloupnost bílých znaků chápe jako jedna mezera, takže když ten text vložíte jinam než jsou ty speciální případy (např. <textarea> nebo >), prohlížeč CRLF zobrazí jako mezeru. Když se ale podíváte do zdrojáku, ty znaky CRLF (tady zalomení řádku) tam budou.

2533
Server / Re:Uložení zalomení řádku v MySQL
« kdy: 03. 05. 2019, 11:21:41 »
Jediný problém nastává až při zobrazení, kdy v html to musí být převedeno na <​br> - k tomu slouží funkce nl2br()
To není úplně přesné – při zobrazení je potřeba to prezentovat ve formátu, ve kterém to chcete zobrazit. Ten text můžete chtít znovu zobrazit v <textarea>, můžete ho chtít zobrazit v <​pre> – pak je potřeba zachovat konce řádků. Můžete to chtít zobrazit jako zalomení řádku v HTML, pak opravdu konce řádků nahradíte <​br>. Ale nejčastěji se CR LF používá jako ukončení odstavce (v čistém textu moc nejde zalomení řádku a ukončení odstavce rozlišit – někdy se používají jako ukončení odstavce dva CRLF za sebou), pak je potřeba odstavce obalit <p>…</p>.

2534
Server / Re:Uložení zalomení řádku v MySQL
« kdy: 03. 05. 2019, 09:59:37 »
Konce řádků v textarea jsou podle standardu znaky CR a LF (tedy hexadecimálně znaky 0x0D a 0x0A). Ta dvojice se používá jako konce řádků např. ve Windows, v unixech se normálně používá jen LF.

2535
Ano, může. CSR je jenom návrh na vystavení certifikátu. Certifikát ale podpisuje certifikační autorita, takže zodpovídá za to, co je v něm uvedené – je tedy čistě na ní, jaké položky a jejich hodnoty do certifikátu uvede. V případě některých chybných hodnot v CSR autorita úplně odmítne vystavit certifikát, některé hodnoty může doplnit (v případě kvalifikovaných certifikátů se takhle doplňují identifikátory, třeba IK MPSV osob nebo IČO firmy) a některé hodnoty natvrdo přepíše (typicky doba platnosti certifikátu – CA tam dá třeba 1 rok bez ohledu na to, co bylo v žádosti).

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