Niedawno powiedziano mi, że jest FILTER_VALIDATE_INT, który jest świetny przy okazji.PHP Security - (int) vs FILTER_VALIDATE_INT
Moje pytanie dotyczy liczby całkowitej pobranej ze strony internetowej, czy to od użytkownika, czy wygenerowanej z aplikacji internetowej i przekazanej za pośrednictwem ciągu zapytania.
Wartość (liczba całkowita) może być wyświetlana lub używana w zapytaniu mysql.
Próbuję strukturyzować najlepszą możliwą metodę zabezpieczenia dla tego.
Mając to na uwadze, jest to bezpieczne, aby po prostu użyć
$myNum = (int)$_GET['num'];
Albo
if (filter_var($_GET['num'], FILTER_VALIDATE_INT)) $myNum = $_GET['num'];
Należy również wyjaśnić, jaka jest różnica między używaniem (int)
i FILTER_VALIDATE_INT
Aby rozwinąć istniejące odpowiedzi, "FILTER_SANITIZE_NUMBER_INT" jest równoważne rzutowaniu "(int)". – mario
@mario, jak możesz to powiedzieć? Nie jest. –