Być może jestem nieco paranoikiem, ale kiedy piszę ponownie moduł kontaktu, przychodzi mi do głowy następujące pytanie:Jak bezpieczne są natywne funkcje php w przypadku niefiltrowanych danych wejściowych?
Czy mogę używać niefiltrowanych danych wejściowych w natywnych funkcjach php?
Jest łatwy do dezynfekcji rzeczy umieścić w bazie danych, wyjście na ekranie, itd, ale zastanawiałem się, czy na przykład poniższa instrukcja może być niebezpieczne:
if (file_exists($_POST['brochure'])) {
// do some stuff
}
Jeśli ktoś jakoś odpowiedzieć do tej strony, czy powyższy kod może być wykorzystany?
Powyższy kod jest tylko przykładem, mogę myśleć o innych funkcjach używanych podczas przetwarzania formularza.
Edit: Dzięki wszystkim, że file_exists w przykładzie jest faktycznie częścią funkcji sanitarnych ale podczas czyszczenia, funkcje php są wykorzystywane tak szybko staje się jajka i kury historia: Aby korzystać z funkcji, mam oczyścić, ale żeby posprzątać, muszę użyć funkcji.
W każdym razie, mam teraz kilka świeżych pomysłów.
php ma dostęp do dużo większej ilości plików niż apache. Powstrzymanie Apache przed wyświetlaniem plików .ht * i .ini nie zatrzyma php przed ich odczytaniem. – Marius
@Marius to jest bardzo prawdziwe. – UnkwnTech
znakomici mężowie punktowi. Uczę się szokujących rzeczy tutaj :) – m42