Skip to content

Conversation

@stefano-1973
Copy link
Contributor

@stefano-1973 stefano-1973 commented Mar 19, 2024

If the traffic flows across a proxyPass, this condition of csrfguard.js is not more satisfied.

if(isValidDomain(document.domain, "%DOMAIN_ORIGIN%")) {

The user will receive this error:

"a OWASP CSRFGuard JavaScript was included from within an unauthorized domain".

The problem lies in request.getRequestURL() used by JavaScriptServlet to get the domain origin. When there is a proxyPass between browser and web-Server, "request.getRequestURL()" returns the computer address of the local web-server as seen by the proxyPass server and not the external proxypass url requested by the client browser.

In this pull-request I modified the JavaScriptServlet so that the class prefers the "X-Forwarded-Host" header if it was populated by proxyPass. This header identifies the original host requested by the client in the Host HTTP request header.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host

@forgedhallpass forgedhallpass linked an issue Mar 22, 2024 that may be closed by this pull request
@stefano-1973
Copy link
Contributor Author

I applied your requests to the code. Let me know if now it's ok

@forgedhallpass forgedhallpass merged commit 65e9a72 into OWASP:master Mar 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

request through a proxyPass problem

2 participants