大多数与部署web应用相关的潜在风险来自于每个应用程序的代码。通过限制应用程序使用的特性,并遵循这里列出的安全编码实践,你可以减少应用程序的潜在风险。
如果您的应用程序需要访问敏感数据或执行潜在的危险操作,您可以考虑实现自己的身份验证和授权方案。请咨询您的网络安全组以获得建议。
eval ()
MATLAB®eval ()
函数将文本字符串转换为命令。这个强大的功能允许用户执行任意MATLAB代码。这段代码又可以执行低权限用户可以使用的任何已安装程序,或访问低权限用户可以访问的任何文件或数据。为web部署和访问而创建的应用程序不能包含对eval ()
.看到eval函数的替代方法(MATLAB)为了消除eval ()
从你的web应用代码。依赖输入清理可以帮助降低间接调用的风险eval ()
.看到Sanitize用户输入.
在你的应用程序用户界面中使用菜单、滑块、刻度盘和按钮,而不是可编辑的文本字段。除了提供更好的用户体验外,这种做法还限制了用户可以提供的输入类型,以及此类输入可能带来的风险。
对于安全专家来说,用户提供的数据被认为是不可信的,因为用户输入是黑客常见的攻击载体。如果您的应用程序必须接受自由文本输入,应用程序必须仔细检查输入,以防止潜在的代码注入攻击——包含特殊字符的文本,迫使应用程序将输入解释为命令而不是数据。
在MATLAB中,代码注入攻击最可能是针对XML、JSON、SQL和其他类似类型的结构化输入。如果您的应用程序接受结构化输入,请咨询IT或安全组,以获得关于如何清理该输入的建议。允许用户直接输入任何类型的代码(如MATLAB、Java)都不是一个好主意®,或JavaScript®),以作即时评估。
从文件中读取数据会使应用程序面临与收集交互式用户输入相同类型的风险。同样的对策也适用。此外,还可以保护只读数据文件不被加密安全的散列算法篡改为数字指纹文件。
将应用程序限制为只读访问可以大大降低与应用程序相关的潜在风险。如果必须写入文件系统,请记住,如果多个用户同时访问应用程序,服务器将同时运行应用程序的多个副本。您必须通过使用运行时生成的惟一文件名或使用通常可以处理多个同时访问的数据库来管理并发写操作。如果同步写没有得到适当的管理,可能会发生数据损坏。
如果你的应用程序包含MATLAB文件,共享库,Java类,或第三方开发的任何其他类型的代码,你必须确保代码是免费的病毒,蠕虫,特洛伊木马,和其他基于web的攻击和渗透载体。您可以与代码的作者以及IT和安全人员讨论这个问题。对于二进制文件或Java类,在将其包含到已部署的应用程序中之前,请考虑对代码运行病毒扫描程序或其他安全软件。
减少曝光率的一种方法是限制应用的运行时间,让它只在需要的时候运行。例如,不要在您的桌面上连续运行它。