Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Walidacja formularza - system News'ow.
rthwh
post 14.04.2013, 18:20:46
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.04.2013

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


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.
Go to the top of the page
+Quote Post
nospor
post 14.04.2013, 18:32:36
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rthwh
post 14.04.2013, 20:06:06
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.04.2013

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


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.
Go to the top of the page
+Quote Post
matiit
post 14.04.2013, 20:11:56
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


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ć.

Ten post edytował matiit 14.04.2013, 20:14:13
Go to the top of the page
+Quote Post
mstraczkowski
post 14.04.2013, 21:04:53
Post #5





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

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


Zaawansowane ataki XSS potrafią ominąć filtrowanie za pomocą tych natywnych rozwiązań.
Polecam: HTML Purifier lub Zend\Escaper

Ten post edytował mstraczkowski 14.04.2013, 21:12:16


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
rthwh
post 16.04.2013, 20:43:04
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.04.2013

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


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 ?
Go to the top of the page
+Quote Post
sajegib
post 17.04.2013, 12:38:20
Post #7





Grupa: Zarejestrowani
Postów: 352
Pomógł: 59
Dołączył: 16.01.2013

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


Jeśli wszystko zrobisz dobrze, to jak najbardziej
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:50