【问题标题】:Allow only "Select" statement for queries executed through PHP对于通过 PHP 执行的查询,只允许“选择”语句
【发布时间】:2012-04-06 20:47:35
【问题描述】:

我已经制作了一个接受查询并通过 php 执行的表单。 我想对输入进行检查,即查询只允许选择语句。 我怎样才能做到这一点?

【问题讨论】:

  • Regex 是我想到的第一件事..
  • 在任何情况下,您都应该为服务器/php 创建一个用户,该用户只允许在您的 MySQL 数据库中“选择”,因此无论您的检查执行的好坏,用户都只能“选择”。
  • 以被授予只读权限的用户身份连接到数据库?

标签: php sql select


【解决方案1】:

最好的方法是,如果您可以访问您的数据库服务器并且可以创建一个新用户,创建一个只有 SELECT 权限的用户,然后将该用户分配给您的 php Web 应用程序。

http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-privileges

正则表达式很好,但以这种方式过滤它有点冒险,你永远不会知道你的用户有多么有创意:)

【讨论】:

  • @aF。 +1 表示“这是什么魔法”
  • 绝对完美的想法,而不是让服务器为你处理这个让数据库为你做......
  • 你应该总是为你的mysql查询创建一个webuser,永远不要使用root用户
  • 我假设每个网络应用程序的单独用户是一个给定的标准,答案是关于特权:)
【解决方案2】:

为了安全起见,您可以创建一个 MySQL 用户并只给该用户SELECT permissions

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多