主要内容

创作安全的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类的情况下,考虑在代码中运行病毒扫描器或其他安全软件,然后将其包含在部署的应用程序中。

降低暴露水平

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

相关的话题