regularní vyrazivo

HackForum

regularní vyrazivo#
ahojec, mam takovy problem s regularnima vyrazama. potrebuju dostat z html tagu
mozne js udalosti a z odkazu moznost href"javascript:"

jaksi mi to nechce jit, byť u toho sedim uz dva dny a tak se ptam, nevi nekdo
jak na to?

jde o to najit do i v parovych i neparovych tagach.

<img onload/../onclick=""> a tady uz bych potrboval aby to smazalo celej ten
tag.
<a href="javascript: ..">lalala</a> tady to same.

dekuji :-)
(odpovědět)
Imhotep | 90.180.194.*9.10.2010 18:18
re: regularní vyrazivo#

$regexp = "[onclick|onload|onerror|onCokoliChces]=[\"
\'](.*)[\"\']";

if(preg_match_all("/$regexp/siU", $data, $matches)) {
var_dump ($matches[1]);
} else {
echo "nic takeho tutaj neni...";
}


v $data mas nejke svoje html... vycet udalosti si dopln jek chces..
(odpovědět)
PcDr. Marty | 89.102.248.*9.10.2010 20:22
re: regularní vyrazivo#
nepocita to s href="javascript:
Ale to uz si snad podle toho upravis..
(odpovědět)
PcDr. Marty | 89.102.248.*9.10.2010 20:24
re: regularní vyrazivo#
ahoj, diky ale nefunguje to. trosku jsem to kvuli tomu predelal, protoze se zda ze by to fungovat melo.

$matches = "<a href=\"\" onload=\"\">neco</a>";

if(preg_replace("#<(.*)([onclick|onload|
onerror|onCokoliChces]=[\"\\\"](.*)[\"\\\"]
)(.*)[^>]*>#Usi", "je tu", $matches)) {
var_dump ($matches);
} else {
echo "nic takeho tutaj neni...";
}

jenze to taky nefunguje, nevis proc?

a prosimte, jak muzu zapsat to ze u neco="" nemusi byt uvozovky ale jen neco=.... diky
(odpovědět)
imhotep | 90.180.194.*10.10.2010 10:37
re: regularní vyrazivo#
Nefunguje?
Tak u me na PHP 5.2.1

$data = "
Ahoj, muj @ mail je mailik@seznam.cz, klidne mi napis.
Taky staci <a href=\"mailto:@druhy@email.com\" onclick=\"alert(1);\">KLIKNOUT</a>
nebo napsat na mail spam@google.com, ten ale nectu :)

<a href=\"[link]" onclick=\"alert(3);\">KLIKNOUT</a>
<a href=\"mailto:@druhy@email.com\" onload=\"alert(0);\">KLIKNOUT</a>
";

$regexp = "[onclick|onload|onerror|onCokoliChces]=[\"
\'](.*)[\"\']";

if(preg_match_all("/$regexp/siU", $data, $matches)) {
var_dump ($matches[1]);
} else {
echo "nic takeho tutaj neni...";
}


Vysledek je:

array(3) {
[0]=>
string(9) "alert(1);"
[1]=>
string(9) "alert(3);"
[2]=>
string(9) "alert(0);"
}



takze to funguje :) Na hostingu (PHP 5.3.3) to bezi taky..

A jinak - proc na zacatku neco strkas do $matches? $matches ti naplni funkce preg_math_all vysledkama. Do toho nemas nic strkat..
(odpovědět)
PcDr. Marty | 89.102.248.*10.10.2010 10:59
re: regularní vyrazivo#
tak v tom byl ten problem - matches.

a prosimte nevis jak udelat ze tam m ta uvozovka muze byt i nemusi?
[\"?] ?
(odpovědět)
imhothep :-) | 90.180.194.*10.10.2010 11:39
re: regularní vyrazivo#
ten otaznik (asi) jen za ] - ten prvni ne.
Ale zase na konci to musis necim nahradit (mezera, >, <, ...) nebo proste necim to musi koncit. Ted se mi s tim nechce srat, jdu se opit :)
Pokud budu vecer schopny chodit, tak se sem jeste stavim :)
(odpovědět)
PcDr. Marty | 89.102.248.*10.10.2010 12:45
re: regularní vyrazivo#
:-D ve 12 hodin rano jdes chlastat? :-D pekny pekny :-D.
(odpovědět)
imhotep | 90.180.194.*10.10.2010 22:36
re: regularní vyrazivo#
Jen pro doplnění: Filtr, kterej vytváříš by byl pěkně děravej. U událostí můžou být také apostrofy (ne pouze uvozovky nebo nic), U přímého odkazu javascript: zase nemusí jít vždy jen o JavaScript. Existují i jiné podporované skriptovací jazyky, například VBscript: Nemluvě o tom, že IE6 si tyto výrazy poněkud domýšlí a tak mu stačí třeba jen script:, xxscript:, javaxxxxx:, nebo vbscrxxx: Dále tu jsou možnosti v podobě self-contained DATA: Prostě bych se být tebou vydal cestou whitelistu a ne blacklistu. Nikdy totiž neošetříš všechny možné případy.
(odpovědět)
.cCuMiNn, | 78.80.204.*11.10.2010 13:16
re: regularní vyrazivo#
ajajajaj, jsem se chtel vyhnout predelavani vsech tagu ktere nabizi muj freewysiwyg editor do regularnich vyrazu a misto toho jsem si jak se lidove riká, nasral do bot :-(.

díky barde, rad te tu zase vidim, po tak dlouhe dobe :-).
(odpovědět)
imhothep | 90.180.194.*12.10.2010 13:42
re: regularní vyrazivo#
qteck si zacal rikat imhotep protoze se stydi za svou minulost?
(odpovědět)
nong | 193.200.150.*12.10.2010 19:09
re: regularní vyrazivo#
Jen prostředek jak řící: ó vážení přicházím v míru :-).
(odpovědět)
qteck.... | 90.180.194.*15.10.2010 22:11

Zpět
Svou ideální brigádu na léto najdete na webu Ideální brigáda
 
 
 

 
BBCode