主要内容

编写安全的Web应用程序

与部署web应用程序相关的大多数潜在风险来自每个应用程序中的代码。通过限制应用程序使用的功能并遵循这里列出的安全编码实践,您可以减少应用程序的潜在风险。

身份验证和授权

如果你的应用程序需要访问敏感数据或执行潜在的危险操作,你可以考虑实现自己的身份验证和授权方案。请向您的网络安全组咨询。

不要打电话eval ()

MATLAB®eval ()函数将文本字符串转换为命令。这个强大的功能允许用户执行任意的MATLAB代码。反过来,该代码可以允许执行低特权用户可用的任何已安装程序,或者允许访问低特权用户有权访问的任何文件或数据。为web部署和访问而创建的应用程序不得包含对eval ().看到eval函数的替代方案寻找消除eval ()从您的web应用程序代码。依赖于输入清理可以帮助降低任何间接调用的风险eval ().看到清理用户输入(MATLAB Web应用服务器)

限制自由文本用户输入

在应用程序用户界面中使用菜单、滑块、刻度盘和按钮,而不是可编辑的文本字段。除了提供更好的用户体验之外,这种做法还限制了用户可以提供的输入类型,以及此类输入可能带来的风险。

清理用户输入

对于安全专家来说,用户提供的数据被认为是不可信的,因为用户输入是黑客的常见攻击向量。如果你的应用程序必须接受自由文本输入,应用程序必须仔细检查输入是否存在潜在的代码注入攻击——包含特殊字符的文本会迫使应用程序将输入解释为命令而不是数据。

在MATLAB中,代码注入攻击最有可能针对XML、JSON、SQL和其他类似类型的结构化输入。如果您的应用程序接受结构化输入,请咨询您的IT或安全组,了解如何对该输入进行消毒。允许用户直接输入任何类型的代码(如MATLAB、Java)从来都不是一个好主意®,或JavaScript®),以便即时评估。

清理从文件读取的数据

从文件中读取数据会使应用面临与收集交互式用户输入相同的风险。同样的对策也适用。此外,您还可以保护只读数据文件免受加密安全散列算法对数字指纹文件的篡改。

尽量减少文件系统写操作

将应用程序限制为只读访问可以大大降低与应用程序相关的潜在风险。如果必须写入文件系统,请记住,如果多个用户同时访问服务器,服务器将同时运行应用程序的多个副本。您必须通过使用运行时生成的唯一文件名或使用通常可以处理多个同时访问的数据库来管理并发写操作。如果并发写管理不当,可能会导致数据损坏。

验证第三方代码的可信度

如果您的应用程序包含MATLAB文件、共享库、Java类或第三方开发的任何其他类型的代码,您必须确保代码没有病毒、蠕虫、特洛伊木马和其他基于web的攻击和渗透向量。您可以与代码的作者以及您的IT和安全人员讨论这个问题。对于二进制文件或Java类,在将其包含在已部署的应用程序中之前,请考虑对代码运行病毒扫描程序或其他安全软件。

降低暴露水平

减少曝光的一种方法是限制应用程序的运行时间,只在需要的时候运行。例如,不要在桌面上连续运行它。

相关的话题