Avvisi di sicurezza
Suggerimento
Per informazioni complete sul tema della sicurezza nel CODESYS ambiente, vedere: Sicurezza
Sviluppo di un controllo HTML5
Non è possibile trasferire alcuna quantità di dati che potrebbe verificarsi con array di grandi dimensioni. In questo caso, è utile associare l'array con la funzionalità dell'intervallo di scorrimento. Ciò consente anche migliori prestazioni di trasferimento perché viene trasferita solo la sezione effettivamente necessaria.
Tipo di editore:
ArrayRange
Tipo di proprietà: Aggiornare
Tipo variabile: Tipo di base dell'array
Pertanto, configurare il controllo HTML5 con una proprietà di interfaccia per l'array come segue:
Utilizzo di un controllo HTML5
Importante
Per motivi di sicurezza, quando si utilizzano i controlli HTML5 è necessario essere consapevoli del fatto che le funzionalità in esso contenute possono provocare attacchi imprevisti. Di conseguenza, il funzionamento di un PLC potrebbe essere danneggiato.
Esecuzione di attacchi DoS sui server web
Spionaggio dei valori che sono stati configurati sui controlli HTML5
Visualizzazione di valori errati dall'applicazione
Invio di valori errati all'applicazione
Esempi di questi includono quanto segue:
Per una protezione efficace, è necessario che vengano intraprese le seguenti azioni di salvaguardia.
Controlla l'autore e i contenuti
Utilizza solo controlli HTML5 di autori attendibili.
CODESYS fornisce supporto per prevenire modifiche impreviste (e potenzialmente dannose) ai controlli HTML5. I controlli HTML5 utilizzati possono essere controllati per le modifiche durante la compilazione o il download e per questo devono essere inizialmente confermati nei progetti. Viene calcolato un checksum (= valore hash) per il contenuto di questi controlli HTML5. Gli autori dei controlli HTML5 possono fornire i propri valori hash per il confronto.
Protocollo HTTPS sicuro
Usa HTTPS.
Con i controlli HTML5, oltre alle istruzioni sui caratteri e agli eventi di input come i clic del mouse, vengono ora trasferiti anche i valori letti o scritti nelle variabili IEC. Ciò potrebbe facilitare gli attacchi man-in-the-middle.
Accesso alle risorse
Per impostazione predefinita, un controllo HTML5 non può caricare risorse come script o stili. Tuttavia, le risorse che sono fornite con l'elemento stesso sono escluse da questo. Se ciò richiede che i contenuti vengano caricati da server diversi dal controller, questo può essere mitigato regolando il ContentSecurityPolicyIncludeTrustedOrigins
impostazione nel generato automaticamente webvisu.cfg.json
file.
Tuttavia, questo non è raccomandato per i seguenti motivi:
Tutti gli altri controlli HTML5 possono quindi scaricare e utilizzare i contenuti da queste posizioni consentite.
Basic Level non ha alcun controllo sulle risorse caricate da server esterni, quindi la disponibilità e la compatibilità non possono essere garantite.
I server esterni potrebbero fornire script dannosi che potrebbero quindi essere eseguiti come parte del controllo HTML5. Ad esempio, uno script dannoso potrebbe modificare i valori ricevuti o inviati o rivelare informazioni.
Manipolazione di file
Fai attenzione se l'applicazione utilizza i controlli HTML5 insieme alla possibilità di modificare i file. Nel caso della manipolazione dei file, gli utenti malintenzionati potrebbero essere in grado di inserire codice dannoso nei controlli HTML5. Questo dovrebbe essere temuto, ad esempio, quando si utilizza l'editor di testo della visualizzazione o funzioni come SysFile
.
Lo sviluppatore dell'applicazione è responsabile di assicurarsi che i percorsi dei file utilizzati per la modifica siano verificati per le posizioni valide (ad esempio, non in
$PlcLogic$/$visu$
cartelle). Ciò è particolarmente pericoloso se l'utente della visualizzazione può inserire liberamente il percorso per la modifica di un file.Si consiglia di utilizzare solo percorsi codificati. In alternativa, puoi anche verificare che un percorso immesso dall'utente si trovi nella posizione prevista.