全包MySQL数据验证

时间:2012-10-24 13:06:00

标签: php mysql database validation input

  

可能重复:
  Best way to prevent SQL injection in PHP?

我正在建立我的第一个在线商店,我自己编写PHP代码并使用MySQL数据库。我被告知,对输入进行数据验证非常重要,这样我的数据库就不会受到损害。有人可以告诉我要包含哪些验证或者推荐可信教程。

提前致谢

2 个答案:

答案 0 :(得分:1)

在此站点搜索“Sql Injection”。 sql注入攻击的常见来源是用户输入,该用户输入未经过验证,然后在被发送到数据库之前可靠地连接。

例如,如果您的陈述是:

select col1, col2 from mytable where id =' + <some variable> + ' and xyz = abc

(其中'some variable'是刚刚传递给SQL的用户输入)

然后用户可以输入'xxx''; delete from mytable; --'

以及数据库得到的是:

select col1, col2 from mytable 
where id ='xxx'; delete from mytable; --' and xyz = abc

造成严重破坏。

所以这里的关键问题是:不要将未经验证的连接文本传递给数据库以便执行

您可以通过多种方式实现这一目标:

  • 检查输入的不需要的字符(难以覆盖 寄托都)
  • 将SQL构建为参数化SQL,即绑定用户输入 参数
  • 调用存储过程(我喜欢它们,但它们不是每个人的杯子 茶)

我会选择参数化SQL,因为数据库驱动程序会将用户输入的所有内容绑定为单个值,同时将业务逻辑保留在数据库之外。< / p>

答案 1 :(得分:0)

Mysql验证意味着您必须阻止来自MySql注入的查询。请阅读以下内容以避免mysql注入。

http://rosstanner.co.uk/2012/01/php-mysql-preventing-mysql-injection/