Skip to content

Parse error v aplikácii SSSP031 #144

@TomiBelan

Description

@TomiBelan

V aplikácii SSSP031 aka "Nastavenia pre mobilné aplikácie" je tlačidlo "Vygeneruj", ktoré používateľovi vygeneruje prihlasovací kód, a tlačidlo ktoré ten kód zmaže. Užívateľom, ktorí majú vygenerovaný kód, nevie Votr otvoriť SSSP031. (Normálne ju neotvárame, chyba bola objavená pri pokuse automaticky otvoriť každú aplikáciu.)

Dôvod je, že v dialógu je HtmlArea kde sa AIS pokúša zobraziť QR kód (čo sa mu aj tak nepodarí, lebo volá funkciu comfac.getComponent ktorá už neexistuje). Obsah tejto HtmlArea je uložený ako script type="text/plain". Lenže v tomto prípade obsahuje ďalší script. Zjednodušený príklad:

<html>
<body>
<script type="text/plain"><!--
<html><body>Aaa<script>alert(123)</script>Bbb</body></html>
--></script>
Ccc
<script>alert(456)</script>
Ddd
</body>
</html>

Prehliadače to zvládnu - dokument bude mať dva script tagy, pričom ten prvý obsahuje textové podreťazce <script> a </script>. Ale lxml si s tým nevie poradiť a časť vstupu zahodí:

>>> from bs4 import BeautifulSoup
>>> BeautifulSoup(c, 'lxml')
<html>
<body>
<script type="text/plain"><!--
<html><body>Aaa<script>alert(123)</script>Bbb</body></html><html><p>
--&gt;</p></html>

Nie je to prvý raz, čo mi lxml robí zle (#132) ale neviem či chceme prejsť na nejaký iný parser keď jedine lxml má prebuilt binaries.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions