Autor | Zpráva | ||
---|---|---|---|
janick Profil |
#1 · Zasláno: 3. 3. 2009, 13:48:36
Zdravím, mám malou otázečku ohledně TinyMCE a javascriptu. Nedávno jsem TinyMCE uvedl do provozu na stránkách, který spravuju a všiml jsem si, že když kliknu na tlačítko editace HTML a napíšu nějaký script v javascriptu např
.:<script>alert('ahoj')</script> <!-- --> Zajímalo by mě, jak přinutit TinyMCE, aby v text mezi tagy <script></script> dával do komentářů javascriptu ( /* */ |
||
bohyn Profil |
#2 · Zasláno: 3. 3. 2009, 15:13:03
janick
„Zjistil jsem, že Ho opravdu do komentářů dává, ale používá komentáře pro HTML“ Tak se to u JS bezne dela, dneska to ale uz neni nutne. Prohlizecu co neznaji znacku <script> je malo. „kter0 v javascriptu očividně nefungují.“ Kdyz das do JS tohle: /* alert('ahoj') */ Takze odpoved je IHMO nijak. Jedine zmenit zrojovy kod TinyMCE, ale je otazka proc to delat. |
||
Joker Profil |
#3 · Zasláno: 3. 3. 2009, 15:18:57
bohyn
Spíš takhle, ne? */ alert('ahoj') /* janick TinyMCE myslím umí ten kód i filtrovat, jenže- tohle nikdy nebude bezpečné. Co když si uživatel TinyMCE prostě vypne a skript napíše do normální textarea? Anebo kdyby opravdu chtěl škodit, není problém tu kontrolu nějak vyblokovat. Jediný bezpečný způsob je odfiltrování skriptu na straně serveru. |
||
bohyn Profil |
#4 · Zasláno: 3. 3. 2009, 15:24:18 · Upravil/a: bohyn
Joker
„Spíš takhle, ne? */ alert('ahoj') /*“ Nevim co funguje tobe, ale ja komentare zapisuju takhle: /* tohle je komentar */ |
||
Joker Profil |
#5 · Zasláno: 3. 3. 2009, 15:49:12
bohyn
Jo aha. Já to myslel jako způsob, jak to zakomentování obejít. Když zadám: */ alert('ahoj') /* zakomentuje se to /**/ alert('ahoj') /**/ ...a skript se provede. Nakolik jsem to pochopil, janick právě chce, aby se skript neprovedl. |
||
bohyn Profil |
#6 · Zasláno: 3. 3. 2009, 16:22:17
V TiniMCE se nevyznam, ale kouknul sem do wiki dokumentace a asi by pomohla konfiguracni promena invalid_elements a pridat tam script. Obsah <script> a </script> to ale asi neodstrani.
|
||
janick Profil |
#7 · Zasláno: 4. 3. 2009, 09:29:54
Dobrý den, chtěl jsem právě, aby se ten script neprovedl. Takže jsem ještě před uložením do databáze prohnal text funkcí
$text=str_replace('<script ','javascript tu fungovat nebude.',$text); Podle mě je to lepší řešení, protože to nejde obejít vypnutím javascriptu. |
||
Joker Profil |
#8 · Zasláno: 4. 3. 2009, 09:44:45
janick
Jen mě zarazilo, že takovej celkem dobrej WISIWIG editor neumí správně komentovat javascript. Ale umí. TinyMCE to dělá správně. Akorát to komentování neslouží k znefunkčnění Javascriptu, jak si myslíte. Kdybyste chtěl Javascript odfiltrovat, aby se neprovedl, použijte invalid elements, jak píše bohyn. Každopádně správná metoda je kontrola na straně serveru, kontrola na straně klienta z principu nemůže být stoprocentní. |
||
Časová prodleva: 16 let
|
0