我很难找到有关此主题的任何信息。我正在创建一个允许用户添加自定义JS代码的插件,例如但不限于Google Analytics。为此,我使用Settings API创建了一个包含几个textarea
字段的设置页面。我使用以下页面作为指南:https://developer.wordpress.org/plugins/settings/custom-settings-page/。
我的问题是,我需要做些什么来确保进入数据库的数据是安全的?或者它已经安全(即通过WordPress转义)?我考虑在sanitize_textarea_field
函数的回调中使用register_setting
函数,但是,数据(例如<script src="example.com/script.js"></script
)看起来完全相同,无论是否具有清理功能。由WordPress序列化。
如果我使用Settings API,我可以安全地假设WordPress会转义进入数据库的所有数据,或者我是否需要编写自定义代码来执行此操作?如果是这样,如果我使用设置API,那么转发数据的过程是什么?
答案 0 :(得分:2)
是的,当你使用WP API时(不只是用于设置,而是其他功能,如update_post_meta
,wp_insert_post
等),WP将确保数据被正确转义之前它被发送到数据库。
少数例外会明确声明您可以输入SQL(例如posts_orderby filter)。
除非您的数据中包含不安全的字符(单引号!),否则在转义之前和之后都不会看到更改。请注意,sanitize_ *函数不处理SQL注入,但尝试清理内容。