Zastrzeżeniefilter_var vs htmlentities vs htmlspecialchars
To nie jest pytanie o to, czy powinniśmy być ucieczki dla wejścia do bazy danych. Jest to ściśle patrząc na techniczne różnice między trzema funkcjami w tytule.
Jest this question Omawiając różnicę między htmlentities()
i htmlspecialchars()
. Ale tak naprawdę nie dyskutuje się o filter_var()
, a informacje znalezione w Google były bardziej zbliżone do "Upewnij się, że przed wprowadzeniem echa nie masz dostępu do danych użytkownika".
Moje pytania są następujące:
- Dlaczego
htmlspecialchars()
ihtmlentities()
powszechnie stosowane przezfilter_var()
? - Czy wydajność spowodowała użycie
filter_var()
? - Czy numer
filter_var()
jest mniej bezpieczny niż pozostałe dwie opcje? - Czy jest jakiś inny powód, aby nie używać następujących do kodowania danych wprowadzonych przez użytkownika, zanim będzie
echod
filter_var($var, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
'htmlentities' /' htmlspecialchars' pozwala zapobiegać podwójnemu kodowaniu encji, ustawiając 4. parametr na "false". Nie wiem, czy można to osiągnąć przez 'filter_var'. – ryanve