1

我正在使用 html 解析器从第三方站点抓取数据,然后将我需要的信息插入 MySQL。碰巧很多信息中都包含撇号。问题是对于 SQL 查询如下:

INSERT INTO table (column) VALUE ('".$value."')

如果 中$variable有撇号,则查询中断。我手动插入的信息太多了。这完全太耗时了。对我有什么建议可以使这个查询起作用吗?

4

2 回答 2

4

这是一个经典的 SQL 注入缺陷。如果 的值$value由用户控制,他们现在基本上可以做任何事情。抓取的字符串中的引号脱离了 SQL 字符串中的引号环境,因此允许执行任意 SQL 命令。

简短的回答是,使用mysql_real_escape_string.

当然,这也是强制性的“mysql_* 已弃用,使用 mysqli 或 PDO”部分。

于 2012-10-11T08:44:09.953 回答
1

因此,换句话说,您的查询很容易受到SQL Injection. 更好地使用PDOMySQLi扩展,因为您标记了`PHP.

花点时间阅读这篇文章:在 PHP 中防止 SQL 注入的最佳方法?

于 2012-10-11T08:44:37.520 回答