Правильный способ кодирования строки перед сопоставлением с регулярным выражением - PullRequest
0 голосов
/ 03 марта 2020

Я хочу сопоставить регулярные выражения с использованием библиотеки pcre2. Я использую шаблоны регулярных выражений из OWASP 10 лучших конфигурационных файлов атаки. Некоторые из этих шаблонов содержат символы non-ASCII. Пример:'''`. Поэтому я подумал об использовании кодировки UTF8. Шаблоны кодируются в UTF8, но кодирование для предметной строки не может быть предсказано. Строка субъекта - это данные, полученные функцией сокета recv (), и, следовательно, клиент / узел может быть любым, и, следовательно, мы не знаем кодировку строки субъекта. Эта строка также может содержать символы не ASCII.

Как правильно выполнить сопоставление? Как я должен кодировать строку темы перед передачей ее в функцию pcre2_match ()?

Исследование: я сталкивался с libiconv, но, поскольку я не знаю исходную кодировку, следовательно, не мог ее использовать. Я также изучаю код безопасности, как они это сделали, но сейчас мне не повезло.

Платформа / Язык: Linux, Cpp

...