gpt4 book ai didi

php - 防止在 PHP 中的高级 MySQL 存储过程语句中注入(inject)

转载 作者:行者123 更新时间:2023-11-29 00:17:10 25 4
gpt4 key购买 nike

我正在使用 XML字符串传递到存储过程以将数据存储到我的数据库中。

一般来说,我使用PDO创建准备好的语句以避免SQL injection通过bindParam()bindValue() , 然后 execute() .但是,为了优化我的数据库,我决定实现一个存储过程,该过程接收大量 XML。数据并一次完成所有写入。

存储过程将使用迭代器遍历 XML 并将行插入数据库。

使用 ExtractValue使用 XPath符号,我可以这样做:

CREATE DEFINER=`$DBU`@`%` PROCEDURE `write_comment_rows`(In xml_string text) 
BEGIN
insert into my_table (comment) values (
ExtractValue(xml_string, 'user_data/comment_field')
);
END;

如何确保我的 XML 中的数据存储在 comment_field放入我的数据库安全吗?

最佳答案

我看不到这种方法的优化。基于 PHP 的解析,然后是一系列包含在事务中的准备好的插入,将会非常快。

反正有inline prepared statements可以在程序中使用

关于php - 防止在 PHP 中的高级 MySQL 存储过程语句中注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22576679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com