在 Web 应用程序 .NET 中,我必须即时将 html 转换为 pdf。我玩弄了一些开源项目。最后我找到了 wkhtmltopdf 。在服务器端,我的应用程序将调用 wkhtmlpdf 的服务器端进程并传递参数并向用户显示 pdf 文件。
从安全角度来看,这种方法有多糟糕?它更容易受到机器人程序的攻击吗?
最佳答案
假设生成的程序在给定不可信输入时出现缓冲区溢出错误,导致任意代码运行。好的一面:嘿,任意代码现在正在另一个进程中运行,而不是服务器进程。不利的一面是:任意代码现在拥有该进程拥有的所有权利。
将子系统隔离到它们自己的进程是一个很好的做法,但不要就此止步。使用纵深防御。
以正确运行所需的最少权限启动新进程。这样,如果对其进行成功攻击,则损害有限。
净化流程的输入,尤其是当它们来自不可信的来源时。确保文件大小合理且包含合理数据。
你想要一次成功的攻击必须跳过一打不可能的箍,而不仅仅是一个。
Joe 关于拒绝服务的观点也值得考虑。
关于c# - 在服务器中启动新进程是否存在安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812060/