Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
dev:284:security [11.10.2017 00:37] – [Twig-Template] Manuela v.d.Decken | dev:284:security [06.12.2020 11:10] – [::decodeIdKey] Manuela v.d.Decken | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
(ein ganzes Paket an Einzelelementen. Von Passwortverschlüsselung bis zum Schutz vor CrossSiteScripting.) | (ein ganzes Paket an Einzelelementen. Von Passwortverschlüsselung bis zum Schutz vor CrossSiteScripting.) | ||
- | ===== SecureTokens | + | ===== CsfrTokens |
Ein wesentlicher Bestandteil zum Schutz gegen CrossSiteScripting ist der Einsatz von Tokens bei der Übermittlung von Formularen und sonstigen Änderungsanforderungen. | Ein wesentlicher Bestandteil zum Schutz gegen CrossSiteScripting ist der Einsatz von Tokens bei der Übermittlung von Formularen und sonstigen Änderungsanforderungen. | ||
- | WebsiteBaker stellt dafür die Klasse **S// | + | WebsiteBaker stellt dafür die Klasse **bin\Security\CsfrTokens** zur Verfügung. Diese Klasse wird grundsätzlich immer automatisch vom Kern geladen und stellt ihre Methoden zur Verfügung. Die Konfiguration der Klasse und auch der Einsatz der Methoden wurde so einfach wie möglich gehalten. |
==== Begriffserklärung ==== | ==== Begriffserklärung ==== | ||
- | **//FTAN//** => Dieser Begriff wurde in Anlehnung an die **T**rans**A**ktions**N**ummern beim Onlinebanking gewählt, da auch sie nur für eine einmalige Transaktion innerhalb eines festgelegten Zeitraums gültig sind.\\ | + | **//Token//** => Ehemals **FTAN**. |
- | Im Unterschied zu der einfachen, 4-stelligen TAN jedoch besteht | + | Im Unterschied zu der einfachen, 4-stelligen TAN jedoch besteht |
**// | **// | ||
Zeile 37: | Zeile 37: | ||
**SecTokenIpv4Netmask**\\ | **SecTokenIpv4Netmask**\\ | ||
- | Hiermit wird der zu überprüfende Netzanteil einer IPv4 Adresse festgelegt. Möglich sind Netzmaskenlängen von 1-32 Bit. Eine Länge von 0 Bit setzt die IPv4-Überprüfung | + | Hiermit wird der zu überprüfende Netzanteil einer IPv4 Adresse festgelegt. Möglich sind Netzmaskenlängen von 1-32 Bit. Eine Länge von 0 Bit setzt die IPv4-Überprüfung |
**SecTokenIpv6Netmask**\\ | **SecTokenIpv6Netmask**\\ | ||
- | Hiermit wird der zu überprüfende | + | Hiermit wird der zu überprüfende |
---- | ---- | ||
==== Verfügbare Methoden ==== | ==== Verfügbare Methoden ==== | ||
- | === ::getFtan | + | === ::getToken |
- | **Prototype: | + | **Prototype: |
- | Gibt ein Array zurück, das die FTAN des aktuellen Requests sowie zusätzliche Daten zurückgibt. | + | Gibt ein Array zurück, das die FTAN des aktuellen Requests sowie zusätzliche Daten zurückgibt. |
Gibt ein Array mit folgenden Schlüsseln zurück: | Gibt ein Array mit folgenden Schlüsseln zurück: | ||
- | ^Schlüssel ^ Type ^ Beschreibung ^ | + | ^Schlüssel ^ Value-Type ^ Beschreibung ^ |
| name | string | Bezeichner des Tokens | | | name | string | Bezeichner des Tokens | | ||
| value | string | Wert des Tokens | | | value | string | Wert des Tokens | | ||
Zeile 56: | Zeile 56: | ||
| previous | string | vorheriger Wert des Tokens | | | previous | string | vorheriger Wert des Tokens | | ||
Der Wert ' | Der Wert ' | ||
- | === ::checkFtan | + | === ::checkToken |
- | **Prototype: | + | **Prototype: |
- | Es wird überprüft, | + | Es wird überprüft, |
- | Bei gültiger FTAN ist der Rückgabewert TRUE andernfalls FALSE. | + | Bei gültigem Token ist der Rückgabewert TRUE andernfalls FALSE. |
- | === ::getIdKey | + | === ::createIdKey |
- | **Prototype: | + | **Prototype: |
Der an die Methode übergebene Wert wird gesichert und dafür ein einmaliger, 6-stelliger, | Der an die Methode übergebene Wert wird gesichert und dafür ein einmaliger, 6-stelliger, | ||
Es können alle skalaren Datentypen übergeben werden: **// | Es können alle skalaren Datentypen übergeben werden: **// | ||
+ | === :: | ||
+ | **Prototype: | ||
+ | * **// | ||
=== :: | === :: | ||
**Prototype: | **Prototype: | ||
- | * **// | + | * **// |
=== :: | === :: | ||
Zeile 154: | Zeile 157: | ||
==== Einsatz mit AJAX ==== | ==== Einsatz mit AJAX ==== | ||
- | SecureTokens in Verbindung mit Ajax erfordert etwas mehr Aufmerksamkeit. Wobei es große | + | SecureTokens in Verbindung mit Ajax erfordert etwas mehr Aufmerksamkeit. Wobei es Unterschiede zwischen den Major-Versionen von WebsiteBaker gibt. |
<div alert> | <div alert> | ||
Zeile 166: | Zeile 169: | ||
<div info> | <div info> | ||
- Ein AJAX-Request muss selbstverständlich die beiden Teile der FTAN (name, value) senden. | - Ein AJAX-Request muss selbstverständlich die beiden Teile der FTAN (name, value) senden. | ||
- | - Ein AJAX-Request muss den HTTP-Header **KIPA_XAJAX: 1** senden. | + | - Ein AJAX-Request muss den HTTP-Header **KIPA-XAJAX: 1** senden. |
- | - Ein AJAX-Response muss vom Server ein **oFtan** Objekt zurück bringen. | + | - Ein AJAX-Response muss vom Server ein **Ftan** Objekt zurück bringen. |
- | - Browserseitig muss ein Script dafür sorgen, dass das zurückgelieferte **oFtan** Objekt verarbeitet wird (// | + | - Browserseitig muss ein Script dafür sorgen, dass das zurückgelieferte **Ftan** Objekt verarbeitet wird (// |
</ | </ | ||
**zu Punkt (1): | **zu Punkt (1): | ||
- | Ein einfacher URL-Argumentestring mit den FTAN-Werten | + | Bei GET Requests genügt ein einfacher URL-Argumentestring mit den FTAN-Werten |
**zu Punkt (2):**\\ | **zu Punkt (2):**\\ | ||
- | Vor dem Senden der Daten den **// | + | Vor dem Senden der Daten den **// |
**zu Punkt (3):**\\ | **zu Punkt (3):**\\ | ||
- | die Rückgabe des oFtan - Objektes. Das ist durch einen Einzeiler sehr einfach zu erledigen.\\ | + | die Rückgabe des Ftan - Objektes. Das ist durch einen Einzeiler sehr einfach zu erledigen.\\ |
- | < | + | < |
**zu Punkt (4):**\\ | **zu Punkt (4):**\\ | ||
- | Das ist der ' | + | Das ist der ' |
Zeile 205: | Zeile 208: | ||
</ | </ | ||
==== Timeout Progressbar ==== | ==== Timeout Progressbar ==== | ||
- | Dies ist eine Möglichkeit, eine Progressbar einzubauen, die die Restzeit bis zum Ablauf der Session/des Tokens anzeigt. | + | Dies ist eine von sehr vielen Möglichkeiten, eine Progressbar einzubauen, die die Restzeit bis zum Ablauf der Session/des Tokens anzeigt. |
Es ist nur ein Beispiel, wie derartiges funktionieren könnte. Selbstverständlich kann jeder seine persönliche Lösung des Problems erstellen! | Es ist nur ein Beispiel, wie derartiges funktionieren könnte. Selbstverständlich kann jeder seine persönliche Lösung des Problems erstellen! | ||
- | <code css> | + | <file css KiSessionProgress.css> |
/* css */ | /* css */ | ||
< | < | ||
Zeile 239: | Zeile 242: | ||
} | } | ||
</ | </ | ||
- | </code> | + | </file> |
- | <code html> | + | <file html5 KiSessionProgress.html> |
<!-- html --> | <!-- html --> | ||
<div id=" | <div id=" | ||
< | < | ||
</ | </ | ||
- | </code> | + | </file> |
- | <code javascript> | + | <file javascript |
/* javascript */ | /* javascript */ | ||
< | < | ||
Zeile 296: | Zeile 299: | ||
updateKiSessionProgressBar({{ Ftan.remain }}); | updateKiSessionProgressBar({{ Ftan.remain }}); | ||
</ | </ | ||
- | </code> | + | </file> |