Pracuję obecnie nad stroną internetową, w której istotną rolę odgrywa upload plików. Chciałbym zabezpieczyć serwer, tak aby zminimalizować wszelkie potencjalne zagrożenia.
Wyodrębniłem obecnie trzy zagrożenia, proszę o porady.
- Iniekcja (wstrzyknięcie kodu) - wiem, że dobrym rozwiązaniem będzie walidacja podczas przetwarzania danych. Czy to wystarczy?
- Steganografia - na serwer będą Upload'owane pliki w formatach jpg, jpeg, gif, png. Chciałbym unikać wszelkich ukrytych treści w plikach, aby chronić serwer, użytkowników oraz siebie. Przeczytałem na paru stronach, że dobrym rozwiązaniem jest sprawdzenie sygnatur plików oraz porównywanie rozmiaru z wzorcem, a także można by zastosować kompresję stratną na poziomie 80% (ponoć optymalnie) aby wstrzymać potencjalnie niebezpieczną zawartość. Doradźcie proszę w tej kwestii.
- Ataki DOS/wielokrotne zapytania - wpadlem na pomysl, ażeby zapisywać w bazie adresy IP oraz mac i przypisywać im ilość zapytań w ciągu sesji lub określonym odcinku czasu np. 0.5h. Po przekroczeniu jakiejś krytycznej liczby np. 1000 zapytań mógłbym czasowo blokowac ip/mac. To dobre rozwiązanie?
Proszę o doradzenie i parę wskazówek.