mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-25 01:46:14 -04:00
security: when served over https, set the "secure" flag for "express_sid" and "language" cookie
The mechanism used for determining if the application is being served over SSL
is wrapped by the "express-session" library for "express_sid", and manual for
the "language" cookie, but it's very similar in both cases.
The "secure" flag is set if one of these is true:
1. we are directly serving Etherpad over SSL using the native nodejs
functionality, via the "ssl" options in settings.json
2. Etherpad is being served in plaintext by nodejs, but we are using a reverse
proxy for terminating the SSL for us;
In this case, the user has to be instructed to properly set trustProxy: true
in settings.json, and the information wheter the application is over SSL or
not will be extracted from the X-Forwarded-Proto HTTP header.
Please note that this will not be compatible with applications being served over
http and https at the same time.
The change on webaccess.js amends 009b61b338
, which did not work when the SSL
termination was performed by a reverse proxy.
Reference for automatic "express_sid" configuration:
https://github.com/expressjs/session/blob/v1.17.0/README.md#cookiesecure
Closes #3561.
This commit is contained in:
parent
b82816c774
commit
a817acbbcc
6 changed files with 54 additions and 3 deletions
|
@ -71,6 +71,7 @@ Available options:
|
|||
* `DB_FILENAME`: in case `DB_TYPE` is `DirtyDB`, the database filename. Default: `var/dirty.db`
|
||||
* `ADMIN_PASSWORD`: the password for the `admin` user (leave unspecified if you do not want to create it)
|
||||
* `USER_PASSWORD`: the password for the first user `user` (leave unspecified if you do not want to create it)
|
||||
* `TRUST_PROXY`: set to `true` if you are using a reverse proxy in front of Etherpad (for example: Traefik for SSL termination via Let's Encrypt). This will affect security and correctness of the logs if not done
|
||||
* `LOGLEVEL`: valid values are `DEBUG`, `INFO`, `WARN` and `ERROR`
|
||||
|
||||
### Examples
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue