[英]protecting against injection in an advanced MySQL stored procedure statement in PHP
我正在使用传递到存储过程中的XML
字符串将数据存储到数据库中。
通常,我使用PDO
创建准备好的语句,以避免通过bindParam()
和bindValue()
进行SQL injection
,然后execute()
。 但是,为了优化数据库,我决定实现一个存储过程,该过程吸收大量XML
数据并一次完成所有编写工作。
存储过程将使用迭代器遍历XML并将行插入数据库。
使用使用XPath表示法的ExtractValue
,我可以执行以下操作:
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;
如何确保存储在comment_field
XML
数据可以安全地放入数据库中?
我认为这种方法没有优化。 基于PHP的解析,然后在事务中包装了一系列准备好的插入,将很快发展起来。
无论如何,在程序中可以使用内联的准备好的语句
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.