Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> TinyMCE, a bezpieczeństwo skryptu
404
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


Witam.

Pomóżcie, bo już zaczynam świrować.

Dodajemy post do bloga. Tytuł wiadomości filtruję tak:
  1. if(!isset($_POST['message_title']) || !validate(post('message_title'), '/^[a-zA-Z0-9\-\!]{1,64}$/'))
  2. $error_messages->append('...');

Z tym nie ma większego problemu.

Do edycji samej wiadomości używam TinyMCE. Z tego co zdążyłem się zorientować to jeżeli w jej treści znajdzie się niestandardowy znak (np. < lub &) to TinyMCE zamienia go na jego "entity name". Sen mi z powiek spędza to, że do bazy lecą apostrofy. Używam oczywiście prepared statements, nie sklejam zapytań, ale jak widzę w bazie:
Kod
<p>test016-desc</p>
<p>;</p>
<p>"</p>
<p>'</p>
<p>&gt;</p>
<p>&lt;</p>
<p>?</p>
<p>&lt;script type="text/javascript"&gt;alert(1);&lt;/script&gt;</p>
...to niezbyt mi się to podoba.
Czy addslashes załatwi tutaj sprawę?

Zastanawiam się co zrobić kiedy ktoś wyłączy obsługę JS.

Proszę o jakieś wskazówki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
404
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


Problem w tym, że to nie wystarczy (IMG:style_emoticons/default/tongue.gif) Dla przykładu:
Kod
<span style="background-image: url('java script:alert(1)')">tekst</span>

TinyMCE sobie z tym poradzi, bo usunie atrybut style (jeżeli wprowadzimy go np. poprzez okienko HTML) - sprawdzałem. strip_tags to zostawi i XSS gotowy (IMG:style_emoticons/default/smile.gif) Dlatego mówię, że takie proste filtrowanie tutaj nie wystarczy.

Ten post edytował 404 25.05.2012, 17:00:16
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(404 @ 25.05.2012, 17:59:41 ) *
Kod
<span style="background-image: url('java script:alert(1)')">tekst</span>

TinyMCE sobie z tym poradzi, bo usunie atrybut style (jeżeli wprowadzimy go np. poprzez okienko HTML) - sprawdzałem. strip_tags to zostawi i XSS gotowy (IMG:style_emoticons/default/smile.gif) Dlatego mówię, że takie proste filtrowanie tutaj nie wystarczy.


Nie wiem jak Ty chcesz robić XSS przez url w style od bg, ale niech będzie (IMG:style_emoticons/default/wink.gif) przejrzałeś dokładnie stronę z tym znacznikiem? Jest tam kilka funkcji które dokładnie usuwają to o czym piszesz.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 07:34