CSRF Abwehr
Um CSRF-Attacken abzuwehren, erzeugt das BPC bei jedem Login einen CSRF Token für den Benutzer.
Dieser muss bei jedem Aufruf der API (außer GET Aufrufe), über den HTTP-Header X-Csrf-Token
oder dem URL-Parameter X-Csrf-Token
, übertragen werden.
Das BPC fügt diesen auf AJAX Calls über das ExtJS Framework automatisch hinzu.
Manuelles setzen des CSRF Tokens
Werden AJAX Aufrufe nicht über ExtJS aufgerufen kann der Header selbst gesetzt werden.
Die API Funktion BpcCommon.Api.getCsrfToken()
gibt dafür ein Objekt zurück, dass im Attribut X-Csrf-Token
den benötigten Token enthält.
Beispiel setzen des CSRF Headers im vanilla JavaScript AJAX Aufruf
function reqListener () {
console.log(this.responseText);
}
const req = new XMLHttpRequest();
req.addEventListener("load", reqListener);
req.open("POST", "cxf/bpc-httpproxy/httpProxy/1647604124866");
req.setRequestHeader(
"X-Csrf-Token",
BpcCommon.Api.getCsrfToken()["X-Csrf-Token"]
);
req.send();
Automatischen CSRF Token verhindern
Soll das BPC den CSRF Token nicht automatisch mit übertragen, so kann dies bei den Verbindungsparametern über das Flag disableBpcProcessing: true
erreicht werden.
Beispiel
Ext.create("Ext.data.Store", {
proxy : {
type : "ajax",
url : "/url",
extraParams : {
disableBpcProcessing : true
}
}
});
Keywords: