使用Perl解码URI相关实体

时间:2009-12-23 19:02:25

标签: perl encoding uri cpan

我甚至可能没有提到这个正确的方式,所以我提前道歉。我们的服务器日志不断向我们展示编码的攻击方式。一个例子如下......

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

我熟悉使用Perl编码和解码HTML实体(使用HTML :: Entities),但我甚至不确定如何引用这种解码方式。我希望能够编写一个脚本来解码这些URI编码(?)。有没有人知道的模块可以指出我正确的方向?

尼克

2 个答案:

答案 0 :(得分:6)

使用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";

答案 1 :(得分:6)

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");'