主要内容

编写安全的Web应用程序

部署web应用的大部分潜在风险来自于每个应用的代码。通过限制应用使用的功能,并遵循这里列出的安全编码实践,你可以降低应用的潜在风险。

身份验证和授权

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

不叫eval ()

MATLAB®eval ()函数将文本字符串转换为命令。这个强大的功能允许用户执行任意的MATLAB代码。这段代码可以执行低权限用户可以使用的任何已安装程序,或者访问低权限用户可以访问的任何文件或数据。为web部署和访问而创建的应用程序不能包含对eval ().看到eval函数的替代方法(MATLAB)想办法消除eval ()从你的web应用程序代码。依靠输入消毒可以帮助降低任何间接调用的风险eval ().看到Sanitize用户输入

限制自由文本用户输入

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

Sanitize用户输入

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

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

清理从文件读取的数据

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

最小化文件系统写操作

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

验证第三方代码的可信度

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

减少暴露水平

减少暴露的一种方法是将应用程序的运行时间限制在需要的时候。例如,不要从您的桌面连续运行它。

相关的话题