From c2e18b4ef04da40b03cd3fcd9259f110f02b01d4 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Fri, 11 Apr 2025 04:59:56 +0300 Subject: [PATCH] Update variables.xml to En + Infostyle --- security/variables.xml | 83 ++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/security/variables.xml b/security/variables.xml index d8d7974b2..a029643b4 100644 --- a/security/variables.xml +++ b/security/variables.xml @@ -1,31 +1,32 @@ - + - Данные, введённые пользователем + Данные пользовательского ввода - Наиболее опасные уязвимости во многих PHP-скриптах - возникают не столько из-за самого языка, сколько из-за кода, - написанного без учёта соответствующих требований безопасности. - Как следствие, вы всегда должны выделять время на исследование + Наиболее опасные уязвимости в PHP-скриптах + часто возникают не столько из-за самого языка, сколько из-за кода, + который написали с нарушением требований безопасности. + Поэтому лучше потратить время на исследование разрабатываемого участка кода, чтобы оценить потенциальную угрозу от ввода переменной с нестандартным значением. - Потенциально опасное использование переменных + Потенциально опасная обработка переменных ]]> @@ -33,53 +34,63 @@ exec ($evil_var); - Вы должны тщательно проверять ваш код и быть абсолютно уверены в том, - что все данные, передаваемые веб-браузером, проверяются надлежащим образом. - Попробуйте ответить для себя на следующие вопросы: + Требуется тщательно проверять код и быть на 100 % уверенным в правильной + проверке данных, которые передаёт браузер. + Ответьте на следующие вопросы: - Будет ли данный скрипт воздействовать исключительно на предполагаемые - данные? + Влияет ли скрипт только на предполагаемые данные? - Могут ли быть обработаны некорректные или нестандартные данные? + Обрабатываются ли некорректные или нестандартные данные? - Возможно ли использование скрипта непредусмотренным способом? + Получится ли использовать скрипт способом, который не предусмотрели? - Возможно ли его использование в сочетании с другими скриптами + Возможно ли использовать скрипт в сочетании с другими скриптами в негативных целях? - Будет ли каждая транзакция корректно логирована? + Правильно ли логируется каждая транзакция? - Ответив на эти вопросы во время написания скрипта, а не после, вы, - возможно, предотвратите последующую доработку скрипта в целях повышения - его безопасности. Начиная разработку с этих вопросов, вы не гарантируете - полную безопасность вашей системы, но сможете значительно повысить её. + Лучше задуматься о безопасности при разработке скрипта, + а не дорабатывать небезопасный код, когда потребуется исправлять последствия уязвимостей. + Такой подход не гарантирует безопасность системы, + но помогает значительно снизить количество уязвимостей. - Вы также можете рассмотреть отключение таких конфигурационных опций, как - register_globals, magic_quotes и некоторых других, которые могут приводить - к сомнениям относительно происхождения или значения получаемых переменных. - Использование при написании PHP-кода режима - error_reporting(E_ALL) может помочь предупредить вас об - использовании переменных до инициализации или проверки - (что предотвратит работу с данными, отличными от ожидаемых). + Безопасность повышают путём отключения настроек, которые делают разработку удобной, но скрывают + источник, достоверность или целостность данных. Уязвимости к атакам наподобие инъекций + или жонглирования данными возникают, когда переменные создаются неявно или когда входные данные + не проверяются. + + + Директива register_globals + и директивы механизма magic_quotes, которые удалили в PHP 5.4.0, когда-то способствовали + этим рискам, поскольку автоматически создавали переменные из пользовательского ввода + и экранировали данные непоследовательно. Хотя директивы удалили из PHP, аналогичные риски сохраняются, + когда входные данные обрабатывают неправильно. + + + Вызов error_reporting(E_ALL) включает режим сообщения об ошибках всех уровней + и помогает определять неинициализированные переменные и проверять входные данные. Инструкция + declare(strict_types=1) включает режим строгой типизации, + который появился в PHP 7 и который повышает безопасность за счёт строгой проверки типов, + предотвращает непреднамеренное преобразование типов и повышает общую безопасность.