1. Всё, что приходит от пользователя - должно быть отфильтровано через regex на ожидаемые паттерны.
2. Все "тела" бинарных файлов (изображений, документов и т.д.) должны быть проверены на корректность ожидаемой структуры данных внутри них.
3. Исходники - (помимо запуска в "песочнице" с урезанными правами) ещё и на опасные действия внутри кода.
И НИКАК ИНАЧЕ!