Я хочу, чтобы мои пользователи использовали регулярные выражения для некоторых функций. Мне любопытно, какие последствия для ввода пользовательского ввода в re.compile(). Я предполагаю, что пользователю не существует возможности дать мне строку, которая позволила бы им выполнять произвольный код. Опасности, о которых я думал, следующие:
- Пользователь может передать ввод, который вызывает исключение.
- Пользователь может передать ввод, который заставляет двигатель регулярного выражения занимать много времени или использовать много памяти.
Решение 1. легко: уловить исключения. Я не уверен, есть ли хорошее решение для 2. Возможно, только ограничение длины регулярного выражения будет работать.
Есть ли что-нибудь еще, о чем мне нужно беспокоиться?