我想在我的服务器中执行用户提交的sql代码(用于教学目的)。但这可能非常危险。 我想知道什么会更好,如果执行sql代码(如果有安全的方法)或只检查用户代码是否匹配正则表达式并显示符号结果。
答案 0 :(得分:2)
您可以做的最简单和最基本的事情是首先限制网页使用的帐户。
仅为特定帐户授予仅对特定数据库执行特定操作的权限。禁用磁盘的所有I / O和其他此类功能。
尽管如此,你必须允许一些插入,创建,删除,更新语句。
此外还有三个选项:
此外,如果可能的话,我会给每个用户自己的帐户,这是从所有其他模式沙箱化的。
您可以创建一个:
的Web应用程序让学生访问PHPMyAdmin,但没有管理员密码。 每个学生都有自己的用户名,并可以使用特定权限访问自己的数据库。
如果您的教学内容与select语句和联接一样基本,则可以为Web界面使用的特定帐户授予该权限。
答案 1 :(得分:0)
我永远不会从我的数据库上的用户执行任意代码,除非它被视为仅仅被视为沙箱的数据库 - 没有“真实”数据,表格,任何东西。我认为它会被不断倾倒而且d。只要能够满足这一要求,我就不会看到你如何将结果看作是教学的现实,而不仅仅是真实地做到这一点。