<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Ahoj,<div class="">Píšeš, že uživatel předá hodnotu „1_1“ která jde následně do literal_eval. Jsi si jistý že to je dobrý nápad? To je přeci totální díra do systému, kde může uživatel executnout libovolný kód. Jestli jste spoléhali na SyntaxError doteď, tak se divím že vás nikdo nehacknul jen for-fun.</div><div class=""><br class=""></div><div class="">Co je to za produkt, že potřebujete „literal_eval“ uživatelského vstupu? NIKDY, NIKDY by neměl být kód z unsafe zdroje předán takovéto funkci.</div><div class=""><br class=""></div><div class="">Lukáš<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">13. 3. 2020 v 17:35, zd nex <<a href="mailto:zdnexnet@gmail.com" class="">zdnexnet@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">No, ok chápu že to můžu na několika místech zkontrolovat, ale jde o to, že těch míst je dost a hlavně to právě je i konzole. Moc mi nejde do hlavy proč i ten literal_eval to povoluje a ty funkce. Proč to není pouze v py kódu bez uvozovek, ale je to i v řetězci. Když to někdo bude mít v kódu, tak to pravděpodobně nebude řetězec. A jde o to, že toto nové chování bylo přidáno ve verzi 3.6 > není to tam od začátku, pokud by to šlo vypnout v těch funkcích, když je to řetězec, tak by mi to ani nevadilo, ale vlastně to ani nejde změnit.<br class=""></div><div class=""><br class=""></div><div class="">Ano, může to být i otázka na StackOverflow.<br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">pá 13. 3. 2020 v 17:13 odesílatel Vojtěch Oram <<a href="mailto:flaiming@gmail.com" target="_blank" class="">flaiming@gmail.com</a>> napsal:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class=""><p class="">Ahoj,<br class="">
to je asi spíše otázka na StackOverflow než VPSFree community
list.</p><p class="">Ale podle mě ty hodnoty z uživatelského vstupu budou vždycky
stringy (pokud to uživatel nevolá jako CLI), takže si to můžeš sám
ošetřit, než s tím budeš dál něco dělat. Zadání 1_1 a 11 by mělo
být v pythonu 3 ekvivalentní. <br class="">
</p><p class="">Vojtěch Oram</p>
<div class="">Dne 13. 03. 20 v 15:55 zd nex
napsal(a):<br class="">
</div>
<blockquote type="cite" class="">
<div dir="ltr" class="">
<div class="">Ahojte,</div>
<div class=""><br class="">
</div>
<div class="">mám dotaz na python. Už delší dobu přecházíme na Python3
(je to složitý a problematický a nemáme žádnou významnou
funkci co by to opodstatnila). Během té doby jsme našli 2
chyby (pickle/shelve) v novém Pythonu a nyní jsme našel nový
hodně velký problém.Je to nová funkce PEP515 podtržítka v
číslech. Tato funkcionalita zní možná naprosto skvěle pro
některé lidi, ale nám nyní dělá značnou neplechu. <br class="">
</div>
<div class="">Jde o to, že nyní všechny interní funkce jako je
int/float/literal_eval při předání "1_1" a podobně vytvoří
číslo 11 a ne SyntaxError. Chápal bych, že tato funkce bude ve
zdrojovém kódu možná užitečná. Jenže pokud nyní uživatel předá
"1_1", tak systém pokračuje dál s novým číslem.</div>
<div class=""><br class="">
</div>
<div class="">Moje otázka zní, znáte nějaký postup jak toto chování
vypnout? Ono se to nezdá ale int/float a literal_eval
používáme opravdu hodně a všude řešit nějakou takovou kontrolu
je těžce proveditelné. V minulosti se podobně blbě chovala
nula na začátku a to naštěstí odstranili, ale nyní přidali
tuto vlastnost.<br class="">
</div>
<div class="">Zkouším hledat na googlu, ale zatím jsem nenašel nic co by
to umožnilo nějak změnit, ideálně globálně.<br class="">
</div>
<div class=""><br class="">
-- <br class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class=""><br class="">
Zdenek<br class="">
Web: <a href="http://www.pripravto.cz/" target="_blank" class="">www.pripravto.cz</a></div>
</div>
</div>
</div>
</div>
</div>
<br class="">
<fieldset class=""></fieldset>
<pre class="">_______________________________________________
Community-list mailing list
<a href="mailto:Community-list@lists.vpsfree.cz" target="_blank" class="">Community-list@lists.vpsfree.cz</a>
<a href="http://lists.vpsfree.cz/listinfo/community-list" target="_blank" class="">http://lists.vpsfree.cz/listinfo/community-list</a>
</pre>
</blockquote></div></blockquote></div></div></div>
_______________________________________________<br class="">Community-list mailing list<br class=""><a href="mailto:Community-list@lists.vpsfree.cz" class="">Community-list@lists.vpsfree.cz</a><br class="">http://lists.vpsfree.cz/listinfo/community-list<br class=""></div></blockquote></div><br class=""></div></body></html>