Wenn der Flag localStorage gesetzt ist, so werden die Daten des Formulares gespeichert im Browser mit localSorage. Wenn der User dieses Formular das nächste mal öffnet, so werden die gespeicherten Daten aus dem Browser wieder dargestellt.
Daten in localStorage zu speichern macht vor allem im Case Formular Sinn.
Sicherheit
Die in localSorage oder in Cookies gespeicherten Daten im Browser können angesehen werden vom User des jeweiligen Browsers. Die localSorage Daten sind per definition nur sichtbar und aufrufbar in der jeweiligen Domäne.
Wenn jemand anderes als der User selber die Daten im Browser ansieht oder der Account des PC/Mobile/Tablet des Users gehackt wird, können die Cookie und localStorage Daten angesehen und missbraucht werden.
zusätzliche Sicherheit durch Verschlüsselung der localStorage Daten
Aus oben genannten Gründen, verschlüsseln wir die Daten welche wir im Browser speichern. Diese verschlüsselung ist mit den Browserdaten nicht zu reproduzieren, da die Verschlüsselung auf dem Server ausgeführt wird. Dadurch entstehen etwas grössere Zeiten zum abspeichern der Daten. Dafür erhalten wir aber eine enorm höhere Datensicherheit.
Verschlüsselungen direkt im Browser sind auch möglich. Jedoch sind diese auf die eine oder andere weise immer reproduzierbar von guten Hackern.
Beispiel-Daten unverschlüsselt:
[{"post_title":"Test Titel 555","postID":3400,"text_5":"Text 5","text_1":"Text 1","text_2":"Text 2","text_3":"Text 3","text_4":"Text 4"}]
Beispiel-Daten verschlüsselt:
K642KIBOkGfzkJdOsh26/z/Ut5xvNaJaiSQLlnKH6U1Vg8F4Mfmqua53KW0HEFT90KRqENJpebxfTvTp1VMr73b2djIvskjcoKUau8aw7bua4+IldHO58BuZBQ9qjhSyky6c2g0gZqFAnLwhXTDMdlPxLN58JNXC4xTcLltT/psUu/evvszzP6EgiK2igtatXo+AZ9wLVlLlZ07EKxGNTNmM6CyJEHJMUVNfMk8twzlp1J4F3NF+DHrDbbvJia29l1Esn9p8nAuF3blHx9+sy3lPiFsEBUXfnzExRrMRF/yUS41lfjazKf+Yax4Tn0XG
Die Verschlüsselung ist pro WordPress Instanz anders. Verschlüsselte Daten können somit auf einer anderen WordPress Instanz nicht entschlüsselt werden.
Warum kein einfaches Autofill im Formular?
Mit Autofill direkt hinterlegte Daten in dem Formular werden im Browser direkt hinterlegt und können ausgelesen/gehackt werden.
Cross-Site Scripting (XSS) unterbinden
Cross-Site-Scripting (XSS; deutsch Webseitenübergreifendes Skripting) bezeichnet das Ausnutzen einer Computersicherheitslücke in Webanwendungen, indem Informationen aus einem Kontext, in dem sie nicht vertrauenswürdig sind, in einen anderen Kontext eingefügt werden, in dem sie als vertrauenswürdig eingestuft werden. Aus diesem vertrauenswürdigen Kontext kann dann ein Angriff gestartet werden.
Ziel ist es meist, an sensible Daten des Benutzers zu gelangen, um beispielsweise seine Benutzerkonten zu übernehmen (Identitätsdiebstahl).
WordPress Sanitizing
Des weitteren verwenden wir sanitize_text_field auch bei den zu verschlüsselnden Daten. Die ist eine Standard WordPress Funktion welche:
- Checks for invalid UTF-8,
- Converts single
<
characters to entities - Strips all tags
- Removes line breaks, tabs, and extra whitespace
- Strips octets
ausführtu nd von WordPress weiter entwickelt wird.
Daten in Datenbank hinterlegen
Eine oft verwendete Methode ist, Daten in der Datenbank zu speichern und diese daten mitte inem Cookie im Browser zu referenzieren. Das Datenaufkommen in der Datenbank wird so gerade für die cookies stark aufgebläht, da diese Cookie Daten bei jedem Request mitgesendetw erden müssen. Dadurchw ird die applikation unnötig verlangsamt.