作为一个想要开发WP插件的人,我应该寻找哪些主要的安全缺陷/漏洞?
我将创建一个带有配置面板(即输入字段和其他内容)的新插件。我应该担心什么?
例如,数据清理是否是一件大事,因为它位于/wp admin/区域?有人会直接恶意点击我的插件页面并发送POST请求或类似的东西吗?
非常感谢。
作为一个想要开发WP插件的人,我应该寻找哪些主要的安全缺陷/漏洞?
我将创建一个带有配置面板(即输入字段和其他内容)的新插件。我应该担心什么?
例如,数据清理是否是一件大事,因为它位于/wp admin/区域?有人会直接恶意点击我的插件页面并发送POST请求或类似的东西吗?
非常感谢。
这是一个修改过的检查表,基于我当前(正在进行的工作)的设置/用于审查主题的数据安全检查表(插件的原则应与主题的原则相同):
插件应在所有选项、自定义函数、自定义变量和自定义常量前面加上插件slug。
插件应该有意识地实现插件选项和插件设置页面,而不是依赖于网站教程中的复制和粘贴脚本,例如以下那些已经过时且不包含适当数据安全性的脚本:
Settings
菜单,而不是使用add_menu_page()
添加顶级菜单。插件应使用适当的功能(例如。manage_options
) 添加设置页面的功能。
插件应该在单个数组中保存选项,而不是为设置页面创建多个选项。使用设置API(见下文)可以解决这一问题。
插件应该使用设置API(见下文)来获取和保存表单输入数据,而不是依赖$_POST
和$_REQUEST
直接获取数据。
对于复选框和选择选项,插件应使用checked()
和selected()
输出功能checked="checked"
和selected="selected"
, 分别地
esc_html()
(或esc_textarea()
在WP 3.1)中,用于文本区域。如果不使用设置API,插件应在检查时明确提供设置页面:
http://www.chipbennett.net/2011/02/17/incorporating-the-settings-api-in-wordpress-themes/
http://planetozh.com/blog/2009/05/handling-plugins-options-in-wordpress-28-with-register_setting/
这有两个方面:
Basic principles.
<应该检查写入数据库的任何内容是否有SQL注入Specifics.
<现代WordPress非常重视安全性,旨在为开发人员提供便利添加defined(\'ABSPATH\') or die(\'Access denied\');
在wordpress直接使用的每个插件脚本中,添加空索引。在每个目录中添加php文件。插件目录中的htaccess,以及防止直接访问某些插件文件所需的说明
我目前正在使用“Wordpress代码片段”为插入到帖子中的代码添加功能。这个插件的工作方式是将代码添加到设置中的插件库中,然后执行类似于[代码:1]的操作(我记不清确切的语法了)我真的不太喜欢它的风格,所以我希望使用谷歌的美化。停用此插件会有什么影响?我会丢失所有的代码片段吗?我是否需要浏览每一篇文章并编辑所有的代码片段(即[代码:1])?