在perl lauguauge中验证CGI事件参数以防止XSS(跨站点攻击)

问题描述 投票:0回答:1

从IBM AppScan报告中我了解到我的代码没有进行任何CGI EVENT_PARAMETER验证,以防止站点受到XSS(跨站点脚本)攻击,链接注入(便于跨站点请求伪造)。

我在CGI.pm中尝试了以下所有验证,以检查我的EVENT_PARAMETERS是否包含任何不需要的字符。

但没有任何工作。

在perl中是否有任何其他方法可以对xss攻击执行CGI EVENT_PARAMETERS的验证?

sub string_param{  #my local function in cgi.pm to validate the parameter 
 # othere code snippets here
 foreach my $val (@raw){

 $val =~ s/.*<\/?(script|img|a).*//igs;
 $val =~ s/%//igs;
 $val =~ s/[^A-Za-z0-9 ]*/ /g;
 $val =~ s/[^0-9\-].*//g;
 $val = encode_entities($val);
 push( @cooked, $val );
 # returning the event parameter here
  }

想知道perl中是否还有其他CGI EVENT_PARAMETER验证方法来解决XSS跨站点脚本攻击。

perl cgi xss
1个回答
1
投票

https://perldoc.perl.org/CGI.html

使用CGI cpan模块,您可以使用子例程escapeHTML并防止XSS在显示之前转义用户输入,因为没有来自用户的html输入是可行的,用户也将无法插入链接。

© www.soinside.com 2019 - 2024. All rights reserved.