Декодирование связанных с URI объектов с помощью Perl - PullRequest
2 голосов
/ 23 декабря 2009

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

http://somecompany.com/script.pl?var=%20%D1%EB........ (etc etc)

Я знаком с кодированием и декодированием HTML-объектов с использованием Perl (используя HTML :: Entities), но я даже не уверен, как ссылаться на этот стиль декодирования. Я бы хотел написать скрипт для декодирования этих кодировок URI (?). Есть ли модуль, о котором кто-нибудь знает, который может направить меня в правильном направлении?

Nikki

Ответы [ 2 ]

6 голосов
/ 23 декабря 2009

Есть онлайн-ресурсы, такие как http://www.albionresearch.com/misc/urlencode.php для быстрого кодирования / декодирования строки.

Программно вы можете сделать это:

use URI::Escape;
my $str  = uri_unescape("%20%D1%EB");
print $str . "\n";

или просто:

perl -MURI::Escape -wle'print uri_unescape("%20%D1%EB");'
6 голосов
/ 23 декабря 2009

Используйте модуль URI :: Escape для экранирования и удаления строк в кодировке URI.

Пример:

use strict;
use warnings;

use URI::Escape;

my $uri = "http://somecompany.com/script.pl?var=%20%D1%EB";
my $decoded = uri_unescape( $uri );
print $decoded, "\n";
...