主要内容

编写安全的Web应用程序

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

认证与授权

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

不要打电话eval ()

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

限制自由文本用户输入

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

净化用户输入

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

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

清除从文件中读取的数据

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

尽量减少文件系统写操作

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

验证第三方代码的可信度

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

减少暴露水平

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

相关的话题