我有一个 cgi 脚本,它将调用一个 shell 脚本。shell 脚本将执行数据库查询并将该查询的结果存储在我服务器上的文件中。
cgi-script 将DATABASE_NAME
,HOST_IP
和QUERY
作为输入,然后将其传递给 shell 脚本。
现在我非常担心它会造成的安全漏洞。
我正在做的一项检查是我正在解析查询以确保仅SELECT
通过语句。如果任何INSERT/UPDATE
类型的查询被传递,shell 脚本将不会被执行。
您能否指出可以利用此类 CGI 脚本的其他一些方法,以便我处理它们。
我的服务器运行为userA
(具有 sudo 权限),shell 脚本中的查询将作为userB
(dbadmin 用户)执行。
shell 脚本中执行查询的命令看起来像这样:
sudo su -c "query" userB
DATABASE_NAME
andHOST_IP
也在查询中传递。