c# - 在服务器中启动新进程是否存在安全漏洞?

标签 c# .net web

在 Web 应用程序 .NET 中,我必须即时将 html 转换为 pdf。我玩弄了一些开源项目。最后我找到了 wkhtmltopdf 。在服务器端,我的应用程序将调用 wkhtmlpdf 的服务器端进程并传递参数并向用户显示 pdf 文件。

从安全角度来看,这种方法有多糟糕?它更容易受到机器人程序的攻击吗?

最佳答案

假设生成的程序在给定不可信输入时出现缓冲区溢出错误,导致任意代码运行。好的一面:嘿,任意代码现在正在另一个进程中运行,而不是服务器进程。不利的一面是:任意代码现在拥有该进程拥有的所有权利。

将子系统隔离到它们自己的进程是一个很好的做法,但不要就此止步。使用纵深防御。

  • 以正确运行所需的最少权限启动新进程。这样,如果对其进行成功攻击,则损害有限。

  • 净化流程的输入,尤其是当它们来自不可信的来源时。确保文件大小合理且包含合理数据。

你想要一次成功的攻击必须跳过一打不可能的箍,而不仅仅是一个。

Joe 关于拒绝服务的观点也值得考虑。

关于c# - 在服务器中启动新进程是否存在安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812060/

相关文章:

c# - .NET 2.0 的 SAML

.net - Gacutil.exe 成功添加程序集,但程序集在资源管理器中不可见。为什么?

c# - 为什么有些文化默认将货币小数点四舍五入?

html - 我的整个正文和页脚都变成了来 self 的导航栏的链接 (html/css)

web - 什么工具可以直观地绘制现有网站?

c# - 我应该在何时/何处在我的 ASP.NET MVC 项目中创建以下类?

c# - 无法为文件夹设置完全控制权限

c# - Process.StandardInput 或从 C# 代码执行的应用程序的编码问题

c# - Expression.Assign 返回 Func 而不是 Action

visual-studio-2010 - 为什么 Visual Studio 2010 发布带有源代码的网站?