Скажите, что я хочу, чтобы пользователь вводил какое бы то ни было регулярное выражение, а также строку, которая будет соответствовать, и я проверю, соответствует ли она, используя Python re.compile
. Это безопасно? Есть ли способ для вредоносного пользователя сбой или получить удаленное выполнение путем передачи в специально созданных строках?Безопасность регулярных выражений
ответ
Я не думаю, что re.compile()
будет проблемой. Конечно, это может вызвать исключение из недопустимых регулярных выражений, но вы можете легко их поймать. Режимы Python не позволяют вызывать код (в отличие от Perl, например), поэтому я не вижу механизм, который злоумышленник может использовать для вставки вредоносного кода в регулярное выражение.
На самом деле работа с регулярным выражением (через re.search()
и т. Д.) Может быть проблемой, поскольку Python не принимает никаких мер предосторожности против catastrophic backtracking, что может привести к увеличению времени выполнения регулярного выражения.
Может быть хорошей идеей запустить регулярное выражение в специальном процессе и убить, если он не завершится в течение секунды или около того.
- 1. регулярных выражений (регулярных выражений) в vb.net
- 2. Получение регулярных выражений (регулярных выражений) в Stata
- 3. Регулярных выражений
- 4. регулярных выражений
- 5. множественность множественных выражений регулярных выражений
- 6. Объединение выражений 2 регулярных выражений
- 7. Безопасность угловых выражений
- 8. Удалить совпадение регулярных выражений, помещенных внутри других регулярных выражений
- 9. Rspec 3: проверка проверки регулярных выражений регулярных выражений
- 10. Преобразование C++ Повышение регулярных выражений в Python повторно регулярных выражений
- 11. Правила двигателей регулярных выражений. Жадность, рвение и леность регулярных выражений
- 12. Предварительно построенные шаблоны регулярных выражений или библиотеки регулярных выражений?
- 13. Использование регулярных выражений регулярных выражений и рубинов для нахождения значений
- 14. Несколько матчей регулярных выражений в рамках других регулярных выражений
- 15. Усиление IP-адреса Проверка регулярных выражений - Рефакторинг регулярных выражений
- 16. Построение регулярных выражений с использованием ранее составленных регулярных выражений
- 17. XML-выражения регулярных выражений для регулярных выражений Java
- 18. Валидатор регулярных выражений Asp.net
- 19. Шаблон регулярных выражений Java
- 20. Ошибка регулярных выражений
- 21. Незначительные Java регулярных выражений
- 22. Генератор парсеров регулярных выражений
- 23. Точное совпадение регулярных выражений
- 24. Повторяющиеся группы регулярных выражений
- 25. Ошибка соответствия регулярных выражений
- 26. JSON ошибка регулярных выражений
- 27. Java регулярных выражений
- 28. PHP регулярных выражений preg_grep
- 29. Каталог регулярных выражений
- 30. Тестирование равенства регулярных выражений
В качестве побочного примечания, в зависимости от ваших потребностей, возможно стоит рассмотреть простое выражение _glob_, а не полноценное регулярное выражение. Для большинства пользователей это проще понять. И это потребует гораздо меньшей мощности для обработки. Но опять же, это будет зависеть от ваших потребностей ... –