PL Perl  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Безопасность Perl-скриптов

Профессиональные сценарии по теме «Безопасность Perl-скриптов» проверяют диагностику, производительность, безопасность и способность защитить архитектурное решение. В тесте 30 вопросов: код нужно не только читать, но и трассировать, проверять на отказ, сопоставлять несколько правдоподобных решений. Ровно 18 заданий содержат фрагменты Perl; остальные проверяют выбор подхода в реальной ситуации. Если в условии не сказано иначе, предполагаются современный Perl 5.40+, strict и warnings; внешние модули рассматриваются в указанном контексте.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 6 тематическим шкалам и подробный разбор.
Вопрос 1 из 30
Что произойдёт после выполнения фрагмента «Режим контроля внешних данных»?
PerlРежим контроля внешних данных
#!/usr/bin/perl -T
use strict; use warnings;
my $file=$ARGV[0];
Вопрос 2 из 30
Какой вариант верно связывает операции с `$age` и наблюдаемое поведение?
PerlПроверка ввода
die 'bad' unless $age =~ /\A[0-9]{1,3}\z/ && $age<=120;
Вопрос 3 из 30
Как ведёт себя участок «Вызов shell» при выполнении?
PerlВызов shell
system {$tool} $tool, @args;
Вопрос 4 из 30
Какое утверждение точно описывает поведение фрагмента «Права файлов» с `$fh` и `$path`?
PerlПрава файлов
sysopen my $fh,$path,O_WRONLY|O_CREAT|O_EXCL,0600 or die $!;
Вопрос 5 из 30
Что произойдёт после выполнения фрагмента «Проверка корректности»?
PerlПроверка корректности
my $token=$ENV{TOKEN};
log_info('request',user=>$user);
Вопрос 6 из 30
Как завершится этот код по правилам Perl 5.40?
PerlУстойчивость к сбоям
eval { write_temp(); rename_temp(); 1 } or do { cleanup_temp(); die $@ };
Вопрос 7 из 30
Что нужно заметить при ревью фрагмента «Режим контроля внешних данных»?
PerlРежим контроля внешних данных
$file =~ /(.*)/; $file=$1;
Вопрос 8 из 30
Что нужно заметить при ревью фрагмента «Проверка ввода»?
PerlПроверка ввода
my $safe=quotemeta($input); store($safe);
Вопрос 9 из 30
Почему вариант с `$tool` и `$user_arg` нельзя считать безопасным для рабочих данных?
PerlВызов shell
system "$tool $user_arg";
Вопрос 10 из 30
Какое скрытое допущение ломает контракт примера «Права файлов»?
PerlПрава файлов
open my $fh,'>',$path; chmod 0600,$path;
Вопрос 11 из 30
Почему участок с `%ENV`, `%request` и `Dumper` ненадёжен на пограничном входе?
PerlПроверка корректности
use Data::Dumper; warn Dumper(\%ENV,\%request);
Вопрос 12 из 30
Какой риск связан именно с операциями `$dir`?
PerlУстойчивость к сбоям
unlink glob "$dir/*";
Вопрос 13 из 30
Почему этот вариант пригоднее для рабочего кода?
PerlРежим контроля внешних данных
$file =~ /\A([A-Za-z0-9_.-]+)\z/ or die 'bad';
$file=$1;
Вопрос 14 из 30
Какое свойство новой версии с `$input`, `validate_domain` и `encode_for_sink` важно закрепить тестом?
PerlПроверка ввода
validate_domain($input); encode_for_sink($input);
Вопрос 15 из 30
Что отличает это исправление от маскировки симптома?
PerlВызов shell
open my $ph,'-|',$tool,@args or die $!;
Вопрос 16 из 30
Что именно стало надёжнее после изменения в блоке «Права файлов»?
PerlПрава файлов
my $old=umask 077;
sysopen my $fh,$path,O_CREAT|O_EXCL|O_WRONLY,0600 or die $!;
umask $old;
Вопрос 17 из 30
Какое свойство новой версии с `$user`, `$token` и `log_info` важно закрепить тестом?
PerlПроверка корректности
log_info('request',user=>$user,token=>redact($token));
Вопрос 18 из 30
Почему новая версия с `@created`, `$tmp` и `$_` устраняет исходный дефект?
PerlУстойчивость к сбоям
my @created; push @created,$tmp; END { unlink $_ for grep { owned_temp($_) } @created }
Вопрос 19 из 30
Какой вывод стоит перенести из учебного примера «Режим контроля внешних данных» в рабочий код?
Вопрос 20 из 30
Какой принцип объясняет три кодовых примера блока «Проверка ввода»?
Вопрос 21 из 30
На что следует опираться при ревью кода по теме «Вызов shell»?
Вопрос 22 из 30
Какое правило отделяет семантику Perl от случайно удачного запуска?
Вопрос 23 из 30
Что является главным ориентиром при работе с «Проверка корректности»?
Вопрос 24 из 30
Какой общий принцип темы «Устойчивость к сбоям» переносится на другие программы?
Вопрос 25 из 30
Какой предел гарантий блока «Режим контроля внешних данных» остаётся в силе после успешного запуска?
Вопрос 26 из 30
Какое предостережение по теме «Проверка ввода» нельзя заменить включением strict и warnings?
Вопрос 27 из 30
Какое ограничение блока «Вызов shell» следует проверять отдельным примером?
Вопрос 28 из 30
Какое ограничение блока «Права файлов» следует проверять отдельным примером?
Вопрос 29 из 30
Что важно отдельно проверить при переносе приёма «Проверка корректности» в рабочий код?
Вопрос 30 из 30
Какую оговорку нужно добавить к основному правилу темы «Устойчивость к сбоям»?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу