Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja formularza - system News'ow.
Forum PHP.pl > Forum > PHP
rthwh
Witam.
Chce się Was poradzić. Piszę prosty system Artykułów na stronę. Dane od użytkownika (tytuł newsa oraz treść newsa) binduje za pomocą metody bindValue(); i dokonuje INSERTA do MySQL'a. I chce się dowiedzieć czy jest to wystarczający sposób (bezpieczeństwo). Czy powinienem używać funkcji takich jak np htmlspecialchars();. Co do tej funkcji to problem jest taki, że używam CKEditor'a no i on rzecz jasna używa znaków specjalnych HTML, kiedy chce wyświetlić to co napisałem jest zonk, widzę normalnie znaczniki smile.gif. - to akurat wiem czemu się dzieje.

Robiłem testy podawając jako treść newsa:
  1. <?php
  2. echo "test test":
  3. ?>


Wyświetla na stronie normalnie ten kod smile.gif nic sie nie dzieje.
nospor
Jesli chodzi o baze to bindowanie jest ok.

No ale są jeszcze inne ataki jak np. XSS i tutaj user może zrobić ci kuku skoro pozwalasz mu na wpisywanie html
rthwh
A jak poraddzić sobie z tego typu atakiem? Jak wspomniałem wczesniej problemem dla mnie jest CKEditor który umieszcza znaki specjalne HTML'a w bazie danych. i jeśli je usunę to utracę formatowanie tekstu.
matiit
Funkcja http://php.net/manual/en/function.htmlentities.php Twoim przyjacielem.
Ale także stript_tags i htmlspecialchars, zrób tak, żeby usuwało po prostu to czego nie chcesz w wyświetlać.
mstraczkowski
Zaawansowane ataki XSS potrafią ominąć filtrowanie za pomocą tych natywnych rozwiązań.
Polecam: HTML Purifier lub Zend\Escaper
rthwh
dzięki najbardziej pomocny był "mstraczkowski". HTML Purifier to to czego szukałem. Rozumiem, stosując tą biblioteke jestem całkowicie zwolniony z "ręcznej" filtracji przez funkcje wcześniej wymienione ?
sajegib
Jeśli wszystko zrobisz dobrze, to jak najbardziej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.