0

我有一个 cgi 脚本,它将调用一个 shell 脚本。shell 脚本将执行数据库查询并将该查询的结果存储在我服务器上的文件中。

cgi-script 将DATABASE_NAME,HOST_IPQUERY作为输入,然后将其传递给 shell 脚本。

现在我非常担心它会造成的安全漏洞。

我正在做的一项检查是我正在解析查询以确保仅SELECT通过语句。如果任何INSERT/UPDATE类型的查询被传递,shell 脚本将不会被执行。

您能否指出可以利用此类 CGI 脚本的其他一些方法,以便我处理它们。

我的服务器运行为userA(具有 sudo 权限),shell 脚本中的查询将作为userB(dbadmin 用户)执行。

shell 脚本中执行查询的命令看起来像这样:

sudo su -c "query" userB

DATABASE_NAMEandHOST_IP也在查询中传递。

4

1 回答 1

1

我希望您已经以某种方式对用户进行了身份验证,并且正在使用 HTTPS 来防止中间人攻击或嗅探身份验证信息和 CGI​​ 参数。

确保正确解析。您需要检查多语句查询。

此外,您可能希望考虑 DOS 攻击,因为编写 SELECT 查询非常容易,这将需要很长时间才能返回并使用大量资源。

此外,将允许的主机 IP 地址列入白名单,否则,我可以很容易地通过访问我的服务器来获取您的用户名和密码。

此外,将允许的数据库列入白名单以防止从系统表中读取。

于 2012-07-12T13:51:19.700 回答