Loading [MathJax]/extensions/tex2jax.js
Ask Your Question
0

Testovací spam 2

asked Nov 22 '14

Spam gravatar image

updated Nov 22 '14

Tak co, dokážu postnout reklamní link? http://www.fit.cvut.cz/levne/vypracovane/pisemky/zde

Comments

Pokus bez entit: http://_@www.fit.cvut.cz/levne/vypracovane/pisemky/zde (do jmena dam podtrzitko).

Spam (Nov 22 '14)

Pokus s IPv6: http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html (IPv6 asi taky neni reseno)

Spam (Nov 22 '14)

Pokus 3: http://8.8.8.8/blablabla (nizka cisla v IPv4)

Spam (Nov 22 '14)

Pokus 4: http://88.88.88.88/blablabla (trochu vetsi cisla)

Spam (Nov 22 '14)

Pokus 5: http://pokus.onion/xyz (>2 znakova domena prvni urovne je explicitne vyjmenovana)

Spam (Nov 22 '14)

Pokus4a: http://123.234.88.135/zzz (staci i jedno cislo mensi nez 100).

Spam (Nov 22 '14)

Pokus 6: http://www.fit.cvut.cz/neosetreno (entity cislem)

Spam (Nov 22 '14)

Pokus 7: http://www.fit.cvut.cz/neosetreno (entity desitkovym cislem)

Spam (Nov 22 '14)

Pokus 8: http://www.fit.cvut.cz/neosetreno (entita pro dvojtecku jmenem)

Spam (Nov 22 '14)

Pokus 9: http://8.8.8.8/test (číselná IP adresa s malými čísly - tohle by nemělo projít!!)

Spam (Nov 22 '14)

Testuje se to vůbec v komentářích?

Miro Hrončok (Nov 22 '14)

Pokud 9 mi jako nový příspěvek neprojde.

Miro Hrončok (Nov 22 '14)

http://8.8.8.8/test (jako komentář to projde).

Spam (Nov 22 '14)
see more comments

1 Answer

Sort by » oldest newest most voted
2

answered Nov 22 '14

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated Nov 22 '14

Josef Kokeš gravatar image

Tento spam vzniknul tak, že jsem odkaz napsal jako http:www.fit.cvut.cz/levne/vypracovane/pisemky/zde - tzn. že jsem dvojtečku nahradil jejím HTML zápisem přes entity. Regulární výraz, který na to AskBot používá, na to nezabere. Kdyby zabral, tak můžu obdobně použít třeba Dttp://www.fit.cvut.cz/levne/vypracovane/pisemky/zde atd. Tzn. než se začne v askbot/models/__init__.py ve funkci user_assert_can_post_text testovat regulární výraz, měl by se napřed text zbavit všech escapovacích sekvencí pro HTML/XML.

Btw., koukám, že regexp v askbot/utils/markup.py je špatně, protože obsahuje věci jako [a-zA-Z&] (zjevně to autoři askbotu odněkud blbě zkopírovali...).


Soudě podle pokusů je těch problematických míst docela hodně. To zase někdo z vývojářů chtěl být hodně důkladný a orientoval se podle toho, který regulární výraz je nejdelší, tak bude i nejlepší. Skoro bych se přimlouval k tomu, ten test na regulární výraz v user_assert_can_post_text zahodit úplně a nahradit ho něčím jako if (re.search('\b(https?|ftp)://', to_lowercase(html_unescape(text)), 'http://')) die_horribly, samozřejmě s příslušnými Pythonovskými funkcemi na místě to_lowercase (převede text na lower case, jaké překvapení) a html_unescape (nevím, jestli něco takového bude existovat, ale v podstatě stačí funkce, která prochází text a všechno nechává být, jen Ӓ převede na znak s kódem 1234, ꯍ na znak s hexa kódem abcd a některé vyjmenované &text; na příslušný znak - např. & na ampersand). Pro účely odstranění spammerů by pro začátek asi stačilo i to, že to_lowercase a html_unescape jen vrátí vstupní řetězec beze změny).

link

Comments

1

Ano, přiznávám to, při hledání neošetřených vstupů jsem šťoura.

Josef Kokeš (Nov 22 '14)

Vynikající :-).

Tomáš Kalvoda (Nov 22 '14)

Nasazeno, prosím o penetrační test ;)

Miro Hrončok (Nov 22 '14)

Na začátek regulárního výrazu prosím \b (začátek slova). Jdu zkusit pár experimentů.

Josef Kokeš (Nov 22 '14)
see more comments

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: Nov 22 '14

Seen: 191 times

Last updated: Nov 22 '14