主要内容

创作安全网络应用程序

与部署Web应用程序相关的大多数潜在风险来自每个应用程序中的代码。通过限制应用程序使用的功能以及按照此处列出的安全编码实践,可以降低应用程序的潜在风险。

身份验证和授权

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

不要打电话eval()

matlab.®eval()函数将文本字符串转换为命令。此功能强大,允许用户执行任意MATLAB代码。此代码反过来可以执行低权限用户可用的任何已安装程序,或访问低权限用户有权访问的任何文件或数据。为web部署和访问而创建的应用程序不得包含对的调用eval()看见eval功能的替代方案出于消除方法eval()通过您的web应用程序代码。依靠输入清理可以帮助降低任何间接调用的风险eval()看见消毒用户输入(MATLAB Web App Server)

限制自由文本用户输入

使用菜单,滑块,拨号和按钮而不是应用程序用户界面中的可编辑文本字段。除了提供更好的用户体验之外,这种做法还限制了输入用户的类型可以提供,并且这种输入可能引入风险。

消毒用户输入

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

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

消毒数据从文件中读取的数据

从文件读取数据将应用公开到与收集交互式用户输入相同类型的风险。适用相同的对策。此外,您可以通过加密安全的散列算法来保护只能通过加密安全的散列算法来进行篡改,以数字指纹文件。

最小化文件系统编写操作

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

验证第三方代码的可靠性

如果您的应用程序包括Matlab文件,共享库,Java类或第三方开发的任何其他类型的代码,则必须确保代码没有病毒,蠕虫,特洛伊木马和其他基于Web的攻击和渗透向量。您可以通过代码和IT和安全人员的作者讨论此问题。在二进制文件或Java类的情况下,请考虑在代码上运行病毒扫描仪或其他安全软件,然后在已部署的应用程序中包含它。

减少曝光率

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

相关话题