执行用户提交的sql安全

时间:2013-05-21 17:49:10

标签: mysql sql

我想在我的服务器中执行用户提交的sql代码(用于教学目的)。但这可能非常危险。 我想知道什么会更好,如果执行sql代码(如果有安全的方法)或只检查用户代码是否匹配正则表达式并显示符号结果。

2 个答案:

答案 0 :(得分:2)

您可以做的最简单和最基本的事情是首先限制网页使用的帐户。

仅为特定帐户授予仅对特定数据库执行特定操作的权限。禁用磁盘的所有I / O和其他此类功能。

尽管如此,你必须允许一些插入,创建,删除,更新语句

此外还有三个选项:

创建完整的webapp

此外,如果可能的话,我会给每个用户自己的帐户,这是从所有其他模式沙箱化的。

您可以创建一个:

的Web应用程序
  • 管理用户帐户(注册等)。
  • 为每个用户创建单独的数据库。
  • 管理在每个用户自己的架构中沙箱的权限。
  • 提供运行查询的环境。

为他们提供访问PHP My Admin

的权限

让学生访问PHPMyAdmin,但没有管理员密码。 每个学生都有自己的用户名,并可以使用特定权限访问自己的数据库。

将用户限制为仅使用选择

如果您的教学内容与select语句和联接一样基本,则可以为Web界面使用的特定帐户授予该权限。

答案 1 :(得分:0)

我永远不会从我的数据库上的用户执行任意代码,除非它被视为仅仅被视为沙箱的数据库 - 没有“真实”数据,表格,任何东西。我认为它会被不断倾倒而且d。只要能够满足这一要求,我就不会看到你如何将结果看作是教学的现实,而不仅仅是真实地做到这一点。