Поделитесь опытом, какие методы и может быть доп. модули/программы вы используете для того, чтобы обезопасить свои программы от взлома? Например, это может быть либо конфигурация сервера, либо какие-то спец. анализаторы ошибок в коде, либо защитные модули.
Вот сидит админ и проверяет данные, проверяет.... А скрипт может крякнуться даже если в нем абсолютно все данные проверяются.
Никак не защищаю. Просто пишу как сказано в мануале и всё работает. Дыры могут быть не в вашем скрипте, по этому всё может крякнуться.
Данные проверяются регулярными выражениями, вхождениями в список, приведениями к нужному виду, сравнением с ожидаемыми данными - исключение взлома, мат-фильтр, скрипт-фильтр, спам-фильтр, защита от SQL, XSS, и много чего ещё. Админу остаётся лишь то, с чем не может справиться комп. Регулярный бэкап
Это понятно. Но безопасность скрипта заключается не только в защите от отказа в обслуживании, но и в защите информации.
Знаю, не дурак. Я спрашиваю, какими для этого программными решениями (кроме мануалов, прямых рук, головы и тп) кто-нибудь хотя бы пользуется. Нет ну я понимаю что скрипту типа гостевая она не шибко нужна. Но когда у вас проект большой, прогеров много, за всеми не уследишь. Тут нужно как-то снижать риски.
Это делается не программно, а на стадии проектирования. Например заранее все договариваются что - Все запросы к базе идут через PDO или MySQLi (это защитит от SQL) - Весь вывод идёт через шаблонизатор (который в свою очередь защитит от XSS) (Если где-то не так, то это за 5 минут находится через CTRL+F)
Как тут у вас всё по-спартански. А чем аргументируете? Ну, кроме правил которые кроме админа никто не занет
До того как его выкладывать на рабочий сервер. По этой-же причине рекомендуют в условиях ставить константы перед переменными, типа Код (Text): if ( 0 == $num ) { // ... } Потому что если программист лажанётся и напишет Код (Text): if ( $num = 0 ) { // вместо $num == 0, все мы люди, можем ошибиться } То это будет проще заметить.
QA - Quality Assurance. В больших проектах используют команду тестирования, которая проверяет продукты на ошибки и большинство уязвимостей. Так что там такой вопрос не поднимается. А в небольших проектах, как ты уже сам заметил, этого даже не требуется - достаточно прямых рук и регулярного бэкапа.