Perl :: Critic реализует ряд проверок безопасности, в значительной степени основанных на книге Perl Best Practices . Учитывая, что Perl :: Critic написан с использованием синтаксического анализатора PPI, он, вероятно, может достичь гораздо большей интроспекции, чем RATS.
Тем не менее, ни один сканер кода или утилита не найдет ошибки безопасности, которые являются результатом просто плохих практик программирования. Несколько простых лучших практик могут иметь большое значение. Страница man perlsec подробно описывает многие проблемы безопасности Perl и дает несколько полезных практических советов.
Из моего собственного опыта, проверяющего горы плохого кода:
- Всегда использовать режим загрязнения (
-T
флаг)
- Всегда
use strict
- Всегда
use warnings
- Всегда используйте заполнители в коде DBI
- Всегда тщательно проверять и дезинфицировать любой ввод перед использованием его в качестве имени файла, имени метода / функции или аргумента системного вызова
- Избегайте строк
eval
, когда это возможно; в любом случае это неэффективно. Никогда не вводите пользовательский ввод в строку eval
.
Я уверен, что больше я не помню сейчас, но уже поздно. :)