Адаптация регулярного выражения в URL Django для соответствия пути к файлу - PullRequest
0 голосов
/ 06 мая 2018

Так что в настоящее время я работаю над веб-приложением, которое в качестве входных данных принимает местоположение файла вредоносного ПО для одной из функций.

Это передается через файл представлений. Однако после некоторого изменения раздела моделей приложения я обнаружил, что он не может разобрать полный путь к файлу.

Код ниже работает для следующего pcap в качестве ввода:

8cdddcd3-35fa-468d-8647-816518a9836a435be1c6e904836ad65f97f3eac4cbe19ee7ba0da48178fc7f00206270469165.pcap

         url(r'^analyse/(?P<pcap>[\w\-]+\.pcap)$', views.analyse, name='analyse'),

Однако этот код больше не работает, если это pcap, содержащий полный путь к файлу.

/ home / freddie / malwarepcaps / 8cdddcd3-35fa-468d-8647-816518a9836a435be1c6e904836ad65f97f3eac4cbe19ee7ba0da48178fc7f00206270469165.pcap

Буду очень признателен за любые предложения или указатели о том, как именно я бы изменил регулярное выражение для размещения полного пути к файлу в строке, передаваемой на маршрут.

1 Ответ

0 голосов
/ 06 мая 2018

регулярное выражение: ((/\w+?)+/)?([\w-]+\.pcap)

django regex: ^analyse(?P<pcap>((/\w+?)+/)?([\w-]+\.pcap))$

обратите внимание, что после analyse нет косой черты, потому что теперь она является частью pcap.

, поэтому analyse/home/freddie/malwarepcaps/foo-bar.pcap должен соответствовать этому шаблону, а pcap будет равен /home/freddie/malwarepcaps/foo-bar.pcap

Тест:

https://pythex.org/?regex=((%2F%5Cw%2B%3F)%2B%2F)%3F(%5B%5Cw-%5D%2B%5C.pcap)&test_string=8cdddcd3-35fa-468d-8647-816518a9836a435be1c6e904836ad65f97f3eac4cbe19ee7ba0da48178fc7f00206270469165.pcap%20%0A%2Fhome%2Ffreddie%2Fmalwarepcaps%2F8cdddcd3-35fa-468d-8647-816518a9836a435be1c6e904836ad65f97f3eac4cbe19ee7ba0da48178fc7f00206270469165.pcap&ignorecase=0&multiline=0&dotall=0&verbose=0

PS: я думаю, что лучше переместить такой параметр (путь - /home/f/m/f.pcap) в строку запроса (для запроса GET) или в http-тело (для запроса POST) поэтому будет проще получить param без url-соответствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...