У меня есть сценарий Perl, который открывает файл, обрабатывает его и выводит некоторые данные. Входной файл распакован.
путь к $file
передается сценарию в качестве дополнения.
Ниже приведено текущее решение, которое я использую:
open(my $fh, "-|", "$gzcat $file") or die("Cannot open $file$!");
Сценарий недавно завершился неудачей в проверке безопасности Checkmarx со следующей ошибкой:
<script> gets user input for the $fh element. This element’s value then flows through the code without being properly sanitized or validated and is eventually displayed to the user in method <method>. This may enable a CrossSite-Scripting attack.
Я попытался проверить, существует ли файл с perl -f, а также удалить нежелательные символы, использующие $file =~ s/[^A-Za-z0-9_\-\.\/]//g;
, но они не удовлетворяют Checkmarx.
Я хотел бы знать, каков правильный способ очистки ввода, который содержит путь к файлу в Perl.