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%)
-----


Cytat(!*! @ 25.05.2012, 12:05:03 ) *
Jak ktoś wyłączy obsługę JS, to powinno pokazać się pole textarea.

Ok, ale jeżeli używam TinyMCE to dane do bazy nie mogę być zformatowane np. za pomocą htmlentities. Ewentualnie addslashes. W związku z tym, w momencie kiedy ktoś wyłączy TinyMCE to nie będzie żadnego zabezpiecznia przed np. XSS, a zabezpieczenia tego nie jest wcale takie banalne jak mogłoby się wydawać. Oczywiście jest to do zrobienia, ale wymaga sporej ilości kodu (z tego co udało mi się dowiedzieć).
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: 3.10.2025 - 07:56