我正在考虑保护PHP应用程序的方法。我想在数据库服务器端(MySQL)上设置一个具有有限权限的用户,并在PHP应用程序中为所有数据库请求配置此用户。
现在的问题是,有权访问源文件的人(例如员工)可以使用配置的凭据直接连接到数据库(例如通过phpmyadmin)。数据库只能通过PHP应用程序进行更新。
我想建立一个机制(触发器或在mysql端或php端或两者上的任何可能),它检查从哪个客户端对数据库的请求来自,从而忽略它。有可能吗?还有其他方法可以考虑这个问题吗?
此致
答案 0 :(得分:2)
现在的问题是,有权访问源文件的人(例如员工)可以使用配置的凭据直接连接到数据库(例如通过phpmyadmin)。
这不是你可以完全防止的。如果某人有权访问源文件,无论如何都会被搞砸。
创建某些保护通常采取的措施是
以无法从服务器外部访问的方式配置mySQL。请参阅Restricting MySQL connections from localhost to improve security,它也应该在防火墙级别上完成(与系统管理员联系)
让Web应用程序使用数据库用户帐户,该帐户在访问应用程序需要运行的任何表和功能时受到限制。
答案 1 :(得分:1)
如果您需要设置某个用户可以登录的域,您可以在授予该用户权限时指定:
在您的数据库中授予所有特权。*至'username'@'192.168.10.12' 通过'goodsecret'确认;
这会将连接限制为192.168.10.12,即使密码是从其他位置提供的,也不适合此grant命令。