安全通知
提示
有关安全主题的全面信息,请参见 CODESYS 环境,请参阅: 安全
开发一个 HTML5 控件
无法传输大型阵列可能出现的任何数量的数据。在这种情况下,将数组与滚动范围功能绑定会很有帮助。这也允许更好的传输性能,因为仅传输实际需要的部分。
编辑器类型:
ArrayRange
财产种类: 更新
变量类型: 数组的基本类型
因此,使用数组的接口属性配置 HTML5 控件,如下所示:
使用 HTML5 控件
重要
出于安全原因,在使用 HTML5 控件时,您必须注意它包含的功能可能会导致意外攻击。因此,可能会损坏 PLC 的操作。
对 Web 服务器执行 DoS 攻击
监视已在 HTML5 控件上配置的值
从应用程序显示不正确的值
向应用程序发送不正确的值
这些示例包括以下内容:
为了有效保护,有必要采取以下措施进行保护。
检查作者和内容
仅使用来自受信任作者的 HTML5 控件。
CODESYS 提供支持以防止对 HTML5 控件进行意外(和潜在的恶意)更改。使用的 HTML5 控件可以在编译或下载期间检查更改,并且必须首先在项目中对此进行确认。为这些 HTML5 控件的内容计算校验和(= 哈希值)。 HTML5 控件的作者可以提供其哈希值进行比较。
安全的 HTTPS 协议
使用 HTTPS。
使用 HTML5 控件,除了字符语句和输入事件(例如鼠标点击)之外,现在还可以传输从 IEC 变量读取或写入到 IEC 变量的值。这可以促进中间人攻击。
访问资源
默认情况下,HTML5 控件无法加载脚本或样式等资源。但是,元素本身提供的资源不包括在内。如果这需要从控制器以外的服务器加载内容,则可以通过调整 ContentSecurityPolicyIncludeTrustedOrigins
在自动生成的设置 webvisu.cfg.json
文件。
但是,不建议这样做,原因如下:
然后也允许所有其他 HTML5 控件从这些允许的位置下载和使用内容。
Basic Level 无法控制从外部服务器加载的资源,因此无法保证可用性和兼容性。
外部服务器可以提供恶意脚本,然后可以作为 HTML5 控件的一部分执行。例如,恶意脚本可以修改接收或发送的值或泄露信息。
文件操作
如果应用程序使用 HTML5 控件以及修改文件的能力,请小心。在文件操作的情况下,恶意用户可能能够将恶意代码插入 HTML5 控件。例如,当使用可视化的文本编辑器或类似的功能时,应该担心这一点 SysFile
.
应用程序开发人员负责确保检查用于修改的文件路径的有效位置(例如,不在
$PlcLogic$/$visu$
文件夹)。如果可视化的用户可以自由输入要更改的文件的路径,则这尤其危险。我们建议您仅使用硬编码路径。或者,您还可以验证用户输入的路径是否在其预期位置。