Я успешно внедрил Modsecurity Firewall.
Но моя команда столкнулась с одной проблемой, связанной с правилом брандмауэра для Sql Injection и Xss.
Проблема в том. Всякий раз, когда пользователь добавляет обычную информацию со специальным символом, правила могут выполняться и отображать страницу с ошибкой 403, запрещенной. И в журнале ошибок Apache есть другой номер строки, который является строкой правил. Я прокомментировал каждое правило, например, правило № (309 508) в modsecurity_crs_41_xss_attack.conf
и (223 233 243 237 211 239,49 136) в modsecurity_crs_41_sql_injeciton.conf
.
что дает мне ложноположительный результат.
Сценарий тестирования
ввод текста
Осталось всего 8 мест! ЗАРЕГИСТРИРУЙТЕСЬ СЕЙЧАС!
В стоимость курса входят учебные материалы, практические занятия, рабочий обед, завтрак, вечерний чай.
** Бесплатное проживание предоставляется по предварительному запросу.
Для размещения, пожалуйста, свяжитесь с нами по телефону: +91 12345 67890 ==================================== ============ Журнал ошибок в апаче
Sahil: [Среда, 16 марта 10:29:57.316380 2016] [:error] [pid 25001]ModSecurity: доступ запрещен с кодом 403 (фаза 2). Соответствие шаблону "(?i:[\"\\'][ ](([^a-z0-9~_:\\' ])|(in)).+?\\(.?\\)) " at ARGS_NAMES:redirect:${#res=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#res.setCharacterEncoding("UTF-8"),#req=#context.get(' com.opensymphony.xwork2.dispatcher.HttpServletRequest'),#res.getWriter().print("dir:"),#res.getWriter().println(#req.getSession().getServletContext().getRealPath(" /")),#res.getWriter().flush(),#res.getWriter().close()}. [файл "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_xss_attacks.conf"] [строка " 506"] [id "973335"] [rev "2"] [msg "Фильтры IE XSS — обнаружена атака."] [данные "Сопоставленные данные: '),#res.setCharacterEncoding(\x22UTF-8\x22) найдены в ARGS_NAMES: перенаправление: ${#res=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#res.setCharacterEncoding(\x22UTF-8\x22),#req=#context.get('com .opensymphony.xwork2.dispatcher.HttpServletRequest'),#res.getWriter().print(\x22dir:\x22),#res.getWriter().println(#req.getSession(). [имя хоста "54.169.124.26"] [uri "/"] [unique_id "Vuk1pawfC1wAAGGpqA8AAAAS"]
Так что не могли бы вы дать рекомендации по этому вопросу...