我必须使用Perl在HTTP POST消息中发送一堆字符串变量作为有效内容。从字符串中删除不安全的HTTP字符
我想从我的字符串变量中删除“不安全”字符,如< > “ ‘ % ;) (& +
。
我知道我可以使用正则表达式模式来查找和替换每个这些字符,但我想知道是否有任何现有的Perl库已经这样做。
例如,我发现Apache::Util
my $esc = Apache::Util::escape_uri($uri);
我可以使用Apache::Util::escape
这个?或者,还有更好的方法?
EDIT 1:我已经提到,通过不安全的,我的意思是字符,如< > “ ‘ % ;) (& +
其可以在SQL注入使用。我不知道如何更好地描述这个问题。
编辑2:下面是我在上 - 它使用的代码是一个嵌入式Perl代码:
$cgi = CGI->new();
my $param1 = $cgi->param('param1');
my $param2 = $cgi->param('param2');
my $param3 = $cgi->param('param3');
# I want to remove unsafe characters (< > “ ‘ % ;) (& +) from $param1, $param2 and $param3
# Q is, do I use Apache::Util::escape_uri; even if that's for removing unsafe chars from URI?
# OR do I use URI::Escape 'uri_escape';?
$script = <<__HTML__;
<script>
API.call ({
'paramA': '$param1',
'paramB': '$param2',
'paramC': '$param3'
});
</script>
__HTML__
编辑3:如果任何人有同样的问题,我最后写一个perl 。功能查找特定的字符,如“(”,“{”,“$”,“;”等,并从您提供的字符串参数删除它们
,我逃避所有字符的名单是: ";", "(", ")", "[", "]", "{", "}", "~", "`", "/", "<", ">", "&", "|", "'", "\"", "\\"
很明显,还有排除的空间。
你目前使用CGI吗?有一个类似于'A :: U :: escape_uri()'的函数。 http://perldoc.perl.org/CGI.html#AUTOESCAPING-HTML – PerlDuck
我刚刚注意到:你想***发送你的数据已经逃脱,所以你写客户端?如果我是对的,那么请告诉你已经使用了哪些模块。 – PerlDuck
再详细一点,这是一个嵌入式Perl页面。我正在生成一些数据作为perl字符串变量,我将在该EPL页面中作为简单的JavaScript POST调用发送。所以我想在JavaScript POST调用之前清理我的变量。 – BlueChips23