我必須使用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