mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-06 02:18:26 +02:00
Add setting and documentation for fixing CSRF errors (#349)
* Add documentation and setting for solving CSRF errors * Improve proxy setup docs * Link to reverse proxy documentation * Fix link
This commit is contained in:
@@ -93,3 +93,18 @@ For example, for Authelia, which passes the `Remote-User` HTTP header, the `LD_A
|
||||
- `LD_AUTH_PROXY_LOGOUT_URL` - The URL that linkding should redirect to after a logout.
|
||||
By default, the logout redirects to the login URL, which means the user will be automatically authenticated again.
|
||||
Instead, you might want to configure the logout URL of the auth proxy here.
|
||||
|
||||
### `LD_CSRF_TRUSTED_ORIGINS`
|
||||
|
||||
Values: `String` | Default = None
|
||||
|
||||
List of trusted origins / host names to allow for `POST` requests, for example when logging in, or saving bookmarks.
|
||||
For these type of requests, the `Origin` header must match the `Host` header, otherwise the request will fail with a `403` status code, and the message `CSRF verification failed.`
|
||||
|
||||
This option allows to declare a list of trusted origins that will be accepted even if the headers do not match. This can be the case when using a reverse proxy that rewrites the `Host` header, such as Nginx.
|
||||
|
||||
For example, to allow requests to https://linkding.mydomain.com, configure the setting to `https://linkding.mydomain.com`.
|
||||
Note that the setting **must** include the correct protocol (`https` or `http`), and **must not** include the application / context path.
|
||||
Multiple origins can be specified by separating them with a comma (`,`).
|
||||
|
||||
This setting is adopted from the Django framework used by linkding, more information on the setting is available in the [Django documentation](https://docs.djangoproject.com/en/4.0/ref/settings/#std-setting-CSRF_TRUSTED_ORIGINS).
|
||||
|
@@ -1,5 +1,13 @@
|
||||
# Troubleshooting
|
||||
|
||||
## Login fails with `403 CSRF verfication failed`
|
||||
|
||||
This can be the case when using a reverse proxy that rewrites the `Host` header, such as Nginx.
|
||||
Since linkding version 1.15, the application includes a CSRF check that verifies that the `Origin` request header matches the `Host` header.
|
||||
If the `Host` header is modified by the reverse proxy then this check fails.
|
||||
|
||||
To fix this, check the [reverse proxy setup documentation](../README.md#reverse-proxy-setup) on how to configure header forwarding for your proxy server, or alternatively configure the [`LD_CSRF_TRUSTED_ORIGINS` option](Options.md#LD_CSRF_TRUSTED_ORIGINS) to the URL from which you are accessing your linkding instance.
|
||||
|
||||
## Import fails with `502 Bad Gateway`
|
||||
|
||||
The default timeout for requests is 60 seconds, after which the application server will cancel the request and return the above error.
|
||||
|
Reference in New Issue
Block a user