Контрольный список уязвимостей в программировании веб-сайта

StackOverflow https://stackoverflow.com/questions/28965

  •  09-06-2019
  •  | 
  •  

Вопрос

Просмотр SO come онлайн стал для меня настоящим образованием.Я хотел бы составить контрольный список различных уязвимостей и эксплойтов, используемых против веб-сайтов, и какие методы программирования можно использовать для защиты от них.

Это было полезно?

Решение

Из самого Открытый Проект по обеспечению безопасности веб-приложений:

  1. Тот Самый Первая десятка OWASP уязвимости (pdf)
  2. Для получения более болезненно исчерпывающего списка: Категория:Уязвимость

В первую десятку входят:

  1. Межсайтовый скриптинг (XSS)
  2. Ошибки при внедрении (SQL-инъекция, внедрение скрипта)
  3. Выполнение вредоносного файла
  4. Небезопасная прямая ссылка на объект
  5. Подделка межсайтовых запросов (XSRF)
  6. Утечка информации и неправильная обработка ошибок
  7. Нарушенная аутентификация и управление сеансами
  8. Небезопасное криптографическое хранилище
  9. Небезопасные коммуникации
  10. Неспособность ограничить доступ к URL-адресу

Другие советы

Очевидно, что необходимо проверить каждое поле на наличие уязвимостей:

  • 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.Я надеюсь, что они будут обновлены в ближайшее время.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top