Uciekające zmienne

Czytałem, że wystarczy, a nawet zaleca się, aby unikać znaków na wyjściu, a nie na wejściu.

Można go łatwo zastosować do wszystkich zmiennych, ponieważ nie są one wprowadzane do bazy danych z poziomu formularza.

Nie jestem jednak pewien, co zrobić ze wszystkimi zmiennymi postowymi. Jeśli nie pochodzi z bazy danych, więc jeśli jest to surowe dane wejściowe, ucieczka jest w pełni potrzebna. Ale używam PDO przygotowanie / wykonanie do ucieczki wszystkich zmiennych. Pytania teraz:

Czy można używać PDO do przygotowywania / wykonywania zarówno w instrukcjach select, jak i insert? Czy nie dwukrotnie ucieka zmienne?Powiedzmy, że dostaję jakąś zmienną za pomocą instrukcji exeute PDO - czy można wyświetlić tę zmienną po prostu za pomocą $ _POST ['zmienna'] bez jej ucieczki (jeśli była już wykonana w funkcji PDO)?Czy htmlspecialchars () jest wystarczający, aby uciec od takich rzeczy, jak zmienne GET, które nie pochodzą z bazy danych?

I najważniejsze - czy to wszystko, PDO przygotowanie / wykonanie i htmlspecialchars (), wystarczające, aby zapobiec wszystkim atakom XSS? Czy powinienem też zrobić więcej? Jeśli tak, co to powinno być? Usuwanie wszystkich tagów HTML z wejścia? Zamiast tego używasz kodu BB?

questionAnswers(4)

yourAnswerToTheQuestion