Вот измененный контрольный список, основанный на моих текущих (незавершенных) настройках / контрольном списке безопасности данных, используемых для просмотра Тем (принципы не должны отличаться для плагинов, чем для тем):
Плагины должны иметь префикс всех опций, пользовательских функций, пользовательских переменных и пользовательских констант с помощью plugin-slug.
Плагины должны реализовывать страницы «Параметры плагинов» и «Настройки плагинов» преднамеренно, а не полагаться на сценарии копирования и вставки из учебных пособий веб-сайтов, таких как приведенные ниже, которые устарели и не включают надлежащую защиту данных:
Плагины должны использовать add_options_page()
функцию добавления страницы настроек плагинов в Settings
меню, а не использоватьadd_menu_page()
добавлять меню верхнего уровня.
Плагины должны использовать соответствующие возможности (например,manage_options
) для возможности добавления страницы настроек.
Плагины должны сохранять параметры в одном массиве, а не создавать несколько параметров для страницы настроек. Использование API настроек (см. Ниже) справится с этим.
Плагины должны использовать API настроек (см. Ниже) для получения и сохранения входных данных формы, а не полагаться на них $_POST
и $_REQUEST
данные напрямую.
Для флажков и выбора опций, плагины должны использовать checked()
и selected()
функцию для вывода checked="checked"
иselected="selected"
, соответственно.
Плагины должны проверять и дезинфицировать все ненадежные данные перед вводом данных в базу данных, а также избегать всех ненадежных данных перед выводом в поля формы «Настройки» и перед выводом в файлы шаблона темы:
Плагины следует использовать esc_attr()
для ввода текста и esc_html()
(илиesc_textarea()
в WP 3.1) для областей.
Плагины должны явно обеспечивать одноразовую проверку страницы настроек, если не используется API настроек:
Также настоятельно рекомендуется, чтобы плагины использовали API настроек, который проще в использовании, более безопасен и берет на себя большую часть тяжелой работы страниц настроек: