Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie niechcianych znaczników <?php oraz ?> wpisanych do textarea
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Witam,

Jest sobie textarea w htmlu. Jak zabezpieczyc sie przed pewna inwazja, zlosliwoscia lub niewiedza userow dotyczaca tresci tego textarea. Mianowicie jesli user wpisze w polu '1234<? 567 ?>89' to zostanie wyswietlone tylko '123489'. Ale to jeszcze nie tragedia. Gorzej jesli w textarea wpisze sie cos co po wyswietleniu (zczytaniu $_POST['textarea'] do zmiennej) moze popsuc dzialanie kodu.
Uzylem juz strip_tags(); ale to usuwa tylko tagi html, a co z phpowymi? Jest taka funkcja?
Albo jeszcze lepiej zeby kazdy znak uzywany w php jakos 'unieszkodliwic'.

Dzieki z gory.
sadistic_son
Dzieki za szybka odpowiedz ale ta funkcja nie dziala worriedsmiley.gif

A szczerze mowiac bledu znalezc nie moge. Cos jest nie tak z " albo z ' ale nie wiem co.
erix
Bo to wyrwany kod z kontekstu. ;]

Zobacz przyklejony temat o bezpieczeństwie skryptów, tam jest wszystko, czego potrzebujesz.
sadistic_son
przbrnąłem przez 10 stron 'bezpieczenstwa skryptów' i niestety nie jestem wciąż usatysfakcjonowany. Owszem sporo tam przydatnych informacji jak GETa zabezpieczyc itp. ale mi chodzi o coś innego.


Inaczej to wyjaśnie, może prościej: Potrzebuje funkcji która uczyni zawartość inputa 'głupoto-odpornym'.
Jeśli w polu <input type="text" name="temat"> lub <textarea name="wypowiedz"> ktoś wpisze np. "jakis temat, jakas<? wypowiedz ?> blabla bla". To $_POST['wypowiedz'] albo $_POST['temat'] beda przyjmowaly wartość stirngu "jakis temat, jakas blabla bla".


Tak więc chodzi mi o to, żeby tak 'obrobić' zawartość tego $_POSTa aby echo $_POST['wypowiedz'] wyświetliło dokładnie to co wpisał user ale nie namieszało w kodzie. Chodzi mi tylko o znaczniki php a nie html.


No i oczywiście nie chodzi mi tylko o same <? ?> , ale równierz o inną potencjalnie niebezpieczną składnię php która nie powinna się znaleźć wewnątrz zmiennej $_POST i winna zostać "unieszkodliwiona" zanim zmienna zostanie poddana obróbce przez dalsze funkcje, mysqla i echo.

Ciężko przewidzieć co wpisze user i tworzenie funkcji podmieniającej np. <? na />? nie ma sensu ponieważ to tylko kropla w morzu tego co ktoś może wpisać do inputa.



PS. Mogłem coś przeoczyć w 'bezpieczenstwie skryptow' i jesli tak to przosze o jakas wskazowke.
THX.
guilty82
moze htmlspecialchars?
potreb
Szukasz igły w stogu siana??
Napisz prosty handler, który będzie przepuszczał jedynie te funkcje, które uznasz za właściwe.

preg_replace" title="Zobacz w manualu PHP" target="_manual
wr24
dobrym rozwiazaniem jest html purifier miedzy innymi czysci przeslany kod z ww zankow http://htmlpurifier.org/
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.