Контрольный список уязвимостей в программировании веб-сайта
-
09-06-2019 - |
Вопрос
Просмотр SO come онлайн стал для меня настоящим образованием.Я хотел бы составить контрольный список различных уязвимостей и эксплойтов, используемых против веб-сайтов, и какие методы программирования можно использовать для защиты от них.
- Какие категории вунерабильностей?
- сайт сбоя
- взлом сервера
- взлом логинов других людей
- спам
- закупка носков, приготовление мясных паштетов
- и т.д...
- Какие методы защитного программирования?
- и т.д...
Решение
Из самого Открытый Проект по обеспечению безопасности веб-приложений:
- Тот Самый Первая десятка OWASP уязвимости (pdf)
- Для получения более болезненно исчерпывающего списка: Категория:Уязвимость
В первую десятку входят:
- Межсайтовый скриптинг (XSS)
- Ошибки при внедрении (SQL-инъекция, внедрение скрипта)
- Выполнение вредоносного файла
- Небезопасная прямая ссылка на объект
- Подделка межсайтовых запросов (XSRF)
- Утечка информации и неправильная обработка ошибок
- Нарушенная аутентификация и управление сеансами
- Небезопасное криптографическое хранилище
- Небезопасные коммуникации
- Неспособность ограничить доступ к URL-адресу
Другие советы
Я поддерживаю информацию OWASP как ценный ресурс.Следующее также может представлять интерес, в частности, схемы атак:
Очевидно, что необходимо проверить каждое поле на наличие уязвимостей:
- SQL - экранирующие строки (например,
mysql_real_escape_string
) - XSS
- HTML печатается из полей ввода (обычно это хороший признак XSS)
- Что-нибудь еще, что не является конкретной целью, для которой было создано это поле
Поиск бесконечных циклов (единственная косвенная вещь (если ее случайно нашло много людей), которая действительно может привести к сбою сервера).
Некоторые методы профилактики:
XSS
Если вы принимаете какие-либо параметры / входные данные от пользователя и когда-либо планируете выводить их, будь то в журнале или на веб-странице, очистите их (удалите все, что напоминает HTML, кавычки, javascript ...) Если вы печатаете текущий URI страницы внутри нее самой, очистите ее!Даже печать PHP_SELF, например, небезопасна.Дезинфицировать!Отражающий XSS исходит в основном из неаналитизированных параметров страницы.
Если вы принимаете какие-либо входные данные от пользователя и сохраняете их или распечатываете, предупредите их, если обнаружено что-либо опасное / недопустимое, и попросите их ввести данные повторно.идентификаторы хороши для обнаружения (например, PHPIDS). Затем продезинфицируйте перед хранением / печатью.Затем, когда вы печатаете что-либо из хранилища / базы данных, очистите еще раз!Ввод -> ИДЕНТИФИКАТОРЫ/ очистка -> хранилище -> очистка -> вывод
используйте сканер кода во время разработки, чтобы помочь выявить потенциально уязвимый код.
XSRF
- Никогда не используйте GET-запрос для деструктивной функциональности, т.е.удаление записи.Вместо этого только принимайте запросы POST.GET упрощает задачу взлома.
- Проверка реферера, чтобы убедиться, что запрос пришел с вашего сайта не работает.Это не трудно подделать реферер.
- Используйте случайный хэш в качестве токена, который должен присутствовать и быть действительным в каждом запросе, и срок действия которого истечет через некоторое время.Распечатайте токен в скрытом поле формы и проверьте его на стороне сервера при публикации формы.Плохие парни должны были бы предоставить правильный токен, чтобы подделать запрос, и если бы им удалось получить настоящий токен, это должно было произойти до истечения срока его действия.
SQL-инъекция
- ваш класс абстракции ORM или db должен иметь методы очистки - используйте их всегда.Если вы не используете класс абстракции ORM или db...так и должно быть.
SQL-инъекция
XSS (Межсайтовый скриптинг) Атаки
Легко контролируется и легко ремонтируется:очистка данных, полученных со стороны клиента.Проверка на наличие таких элементов, как ';', может помочь предотвратить внедрение вредоносного кода в ваше приложение.
Добрый день,
Хорошим инструментом статического анализа для обеспечения безопасности является Поиск недостатков автор сценария: Дэвид Уилер.Он хорошо справляется с поиском различных эксплойтов безопасности,
Однако это не заменяет того, чтобы кто-то со знанием дела прочитал ваш код.Как говорит Дэвид на своей веб-странице, "Дурак с инструментом все равно остается дураком!"
ХТХ.
твое здоровье, Роб
Вы можете получить хорошие дополнения firefox для тестирования множества недостатков и уязвимостей, таких как xss и sql-инъекции, из Компас безопасности.Жаль, что они не работают в firefox 3.0.Я надеюсь, что они будут обновлены в ближайшее время.