При снятии переменных в Perl все незатухающие должны выполняться локально в файле Perl (.pl) или его можно передать через модуль Perl (.pm), чтобы освободить?Perl Untaint Variable By Passing Through Perl Module Подпрограмма
Например, untainting может выглядеть примерно так:
$string =~ /\A(.*)\z/s
(очевидно, это плохая практика, чтобы офсетный матч-либо вход, это просто показывает пример)
Я интересно, можно ли передать его через .pm, так как я хочу выполнить против того же выражения регулярного выражения в нескольких файлах .pl.
use myModule;
$string = myModule::myUntaint($string);
Где "myUntaint" является подпрограммой в .pm "MyModule", который содержит мое регулярное выражение.
Он никогда не должен выглядеть так: '$ string = ~/\ A (. *) \ Z/s' или' myModule :: myUntaint ($ строка); '. Он должен подтвердить значение. – ikegami
Вы пробовали это? Я предполагаю, что, поскольку 'CGI :: Untaint' или' Untaint' существует, он работает. Однако по очевидным причинам - вы не должны просто одевать untaint, потому что все дело в том, чтобы гарантировать, что любой потенциально опасный ввод больше не будет. – Sobrique
Спасибо за ввод. Я использовал '$ string = ~/\ A (. *) \ Z/s' как быстрый пример untainting. Очевидно, что это типичная ужасная практика одевания матчей - что угодно, когда вы не помогаете. Подпрограмма 'myUntaint()' в myModule .pm будет содержать правильное регулярное выражение для проверки значения. – SpenserAD