验证CGI事件参数以保护Perl Lauguauge中的XSS(跨站点攻击)



来自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跨站点脚本攻击。

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

使用CGI CPAN模块,您可以使用子例程EscapeHTML并在显示之前防止XSS逃脱用户输入,因为用户没有HTML输入可行,因此用户也无法插入链接。

最新更新