我正在撰寫一個 WordPress 插件,其中有一個供用戶添加注釋的輸入表單。我正在使用 WooCommerceupdate_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?
上面的代碼可以安全地用于在資料庫中插入資料嗎?
uj5u.com熱心網友回復:
update_meta_data
據我在 woo 的update_meta_data源代碼中看到的,沒有呼叫任何消毒功能。
update_metadata
另一方面,如果您查看 wordpress update_metadataDocs,則會呼叫兩個清理函式:
sanitize_key源代碼
和
sanitize_meta源代碼
所以要回答你的問題,是的,在我使用update_meta_data.
為了做到這一點,sanitize_text_field通常會很好地完成作業,但如果您想確保使用正確的消毒功能,請改用sanitize_metaDocs。這就是 wordpress 本身正在使用的。在安全方面,我個人從來沒有使用過任何問題,sanitize_text_field也沒有看到其他人有任何問題。您提供給我們的代碼片段對我來說看起來很安全。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385212.html
標籤:WordPress的 求购 sql注入 消毒
