Wprowadziłem sprawdzanie poprawności danych wejściowych dla wszystkich danych wejściowych za pomocą php (jak również js na interfejsie użytkownika). Używam odlewania w typie, gdzie mogę, sprawdzając poprawność takich rzeczy jak e-maile w wyrażeniu regularnym, upewniając się, że wartości rozwijane są tylko tymi, których się spodziewam, a także w wielu przypadkach, w których oczekuję tylko ciągu znaków. Mam regex, który działa, co pozwala tylko litery, cyfry i spacje. Wszystko, co nie spełnia tych reguł, powoduje, że sprawdzanie poprawności nie działa, a zapytania sql nie są uruchamiane.sanityzacja danych wejściowych sprawdzanie poprawności VS
Powiedziawszy to, jeśli mój formularz przejdzie sprawdzanie poprawności, zakładam, że można go bezpiecznie wprowadzić do bazy danych (co robię przez pdo), a następnie uciekam na wyjściu.
Więc z tym powiedziałem, dlaczego potrzebuję sanityzacji wejściowej?
Powiedziałbym, że jesteś w następstwie przyjętej metody. Dezynfekcja i walidacja (łącznie) nie zawsze są konieczne. Mimo, że jestem fanem obrony w głębi, więc prawdopodobnie wykonam obie. Ale "odrzucanie znanych złych" i "przyjmowanie znanego dobra" jest również uważane za dopuszczalne. https://www.owasp.org/index.php/Data_Validation – cmt