linux - Apache-CGI-Bash 应用程序中的安全性或其他陷阱?

标签 linux security bash shell cgi

我已经接手支持时间和费用输入系统。 Apache 的 CGI。 CGI 程序是用 bash 编写的 :) 我将向其中添加一些功能并将其公开给更多的用户,但在此之前我想先了解一下还需要注意什么 在安全性、漏洞、CGI 陷阱等方面。

用户不多,但该应用程序性能非常好,并且始终如一地大量使用 bash 编写。页面看起来像大量使用此处文档的 ASP/JSP/PHP 格式。参数是从单独的 C 程序推断出来的, session 信息存储在数据库 (MySQL) 中,SQL 参数/注入(inject)被正确转义。

我很纠结,好像这个堆栈真的需要被剥离吗? 在大部分直接用 bash 编写的整个应用程序中需要注意什么?

最佳答案

像一个知道系统中所有代码的恶意用户一样思考(代码中的模糊性是没有防御的!-):你将如何破坏系统?

您能否向其提供恶意 header 、URL 或查询参数,以便您的恶意注入(inject)文本最终被系统吞噬并用于攻击文件系统、数据库等? SQL 注入(inject)是一种攻击途径,但可能还有其他途径,除非系统真的偏执地处理它从用户那里收到的一切——不要使用它(没有非常仔细地检查和清理!)来形成文件名、系统命令和依此类推,不存储它供以后执行,等等。

它并没有真正特定于 bash 或特定于 cgi 的东西 —— 只是你需要确保安全的常见或花园形式的偏执狂(甚至没有像 perl 的“污点”概念这样的拐杖 —— 这并不能完全解决问题一切[[当然远非如此]],但它确实为您节省了一些努力;-)。

关于linux - Apache-CGI-Bash 应用程序中的安全性或其他陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671504/

相关文章:

linux - 用另一个变量替换文本文件中的变量

wordpress - wordpress 安装必须具有哪些权限才能安全但有效?

bash - 如何从 shell 脚本中获取倒数第二个参数?

bash - 从 shell (bash) 脚本执行命令时在用户提示符中插入文本?

bash - 如何在 bash 中用指数对两列进行排序

html - Bash:发送带有附件的 HTML?

c - gcc:与源文件位于同一文件夹中的链接库

PHP 验证 base64 编码的图像

c - 在Linux C程序中写入自己的可执行文件,错误 "Text file busy"

c++ - 与 Thrift Hook