【问题标题】:Is values passed to WooCommerce update_meta_data method fully sanitizing?传递给 WooCommerce update_meta_data 方法的值是否完全消毒?
【发布时间】:2022-01-19 12:05:01
【问题描述】:

我正在编写一个 WordPress 插件,其中有一个供用户添加注释的输入表单。我正在使用 WooCommerce update_meta_data 方法将笔记保存在数据库中。

考虑这段代码:

$note = isset($_POST['order_note']) ? sanitize_text_field($_POST['order_note']) : '';
$order->update_meta_data('_order_note', wp_json_encode($note));
$order->save_meta_data();

我知道update_post_meta 在将数据插入数据库之前会对其进行清理(SQL 注入),但是update_meta_data 呢?

以上代码在数据库中插入数据是否安全?

【问题讨论】:

    标签: wordpress woocommerce sql-injection sanitization


    【解决方案1】:

    update_meta_data

    据我在 woo 的 update_meta_dataSource Code 上看到的,没有调用任何消毒功能。

    update_metadata

    另一方面,如果你看一下 wordpress update_metadataDocs,就会调用两个清理函数:


    所以要回答您的问题,是的,在使用 update_meta_data 更新元数据之前,我也会使用清理功能。

    为了做到这一点,sanitize_text_field 通常可以很好地完成工作,但如果您想确保使用正确的清理功能,请改用sanitize_metaDocs。这就是 wordpress 本身正在使用的。就安全性而言,我个人在使用 sanitize_text_field 时从未遇到任何问题,我也没有看到其他任何人对此有任何问题。你提供给我们的 sn-p 在我看来是安全的。

    【讨论】:

      猜你喜欢
      • 2011-07-19
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      相关资源
      最近更新 更多