Mysql 插入到自定义表时是否仍应转义数据?
我找到了一个答案,但它并没有给我想要的答案。解释WordPress使用的最重要的卫生功能 我使用PDO将表单数据存储到自定义表中。很多数据都包含像Mysql 插入到自定义表时是否仍应转义数据?,mysql,wordpress,pdo,sanitization,Mysql,Wordpress,Pdo,Sanitization,我找到了一个答案,但它并没有给我想要的答案。解释WordPress使用的最重要的卫生功能 我使用PDO将表单数据存储到自定义表中。很多数据都包含像l'this和Cotélac&Blancé这样的名称 如果我把电子邮件和url字段放在一边,那么使用esc_attr和esc_html来避免SQL注入和跨站点脚本编写就足够了吗 我应该在数据保存到数据库之前使用它吗?还是在我把它放到屏幕上之前 //From Wordpress esc_html -> Escaping for HTML block
l'this
和Cotélac&Blancé
这样的名称
如果我把电子邮件和url字段放在一边,那么使用esc_attr
和esc_html
来避免SQL注入和跨站点脚本编写就足够了吗
我应该在数据保存到数据库之前使用它吗?还是在我把它放到屏幕上之前
//From Wordpress
esc_html -> Escaping for HTML blocks
esc_attr -> Encodes the <, >, &, " and '
既然您已经标记了,我可以补充一点,就是有一个可以处理所有这些问题的
是的,你应该用它来帮助你
从法典的示例中:
$wpdb->query( $wpdb->prepare(
"
INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value )
VALUES ( %d, %s, %s )
",
10,
$metakey,
$metavalue
) );
取决于你如何使用PDO@YourCommonSense我用查询示例更新了问题,你们可能想读一下:是的,我知道。不幸的是,我在开始工作2年后就想到了这一点(我对WP有了更多的了解)。所以现在有几千行SQL查询。另一方面,如果需要/时间到来,不使用
$wpdb
可以让我更轻松地将代码移植到不同的系统上。即使我使用的是$wpdb
,我仍然应该漏掉一些数据?如果您使用的是$wpdb
,则prepare
方法将为您提供必要的帮助。如果您不确定是否可以硬编码一些值,并尝试将其添加到wordpress数据库中,只需查看$wpdb类的工作方式是否符合您的预期即可。但是,假设我还没有计划使用$wpdb
,你会如何解决我上面的问题?斯坦给了你一个链接,其中详细讨论了这个主题:
$wpdb->query( $wpdb->prepare(
"
INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value )
VALUES ( %d, %s, %s )
",
10,
$metakey,
$metavalue
) );