summaryrefslogtreecommitdiff
path: root/lib (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use API key instead of clientSecretSheogorath2018-04-132-0/+2
| | | | | | | | | As recently discovered we send the clientSecret to the webclient which is potentionally dangerous. This patch should fix the problem and replace the clientSecret with the originally intended and correct way to implement it using the API key. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* Merge pull request #791 from SISheogorath/fix/extendedCSPPoliciesChristoph (Sheogorath) Kern2018-04-053-2/+17
|\ | | | | Fix CSP for disqus and Google Analytics
| * Fix CSP for disqus and Google AnalyticsSheogorath2018-03-303-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit should fix existing problems with Disqus and Google Analytics enabled in the meta-yaml section of a note. Before this commit they were blocked by the strict CSP. It's still possible to disable the added directives using `addDisqus` and `addGoogleAnalytics` in the `csp` config section. They are enabled by default to prevent breaking changes. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Add session data to env varsSheogorath2018-03-291-0/+2
|/ | | | | | | | | | | Currently the session secret can only be set by config.json or docker secrets. This creates a problem on Heroku hosted instances that can not set a session secret. Since we automatically generate them on startup this results in an logout of all users on every config change in Heroku. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* Merge pull request #780 from SISheogorath/fix/sessionSecretChristoph (Sheogorath) Kern2018-03-282-0/+10
|\ | | | | Automatically generate a session secret if default is used
| * Automatically generate a session secret if default is usedSheogorath2018-03-262-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The session secret is used to sign and authenticate the session cookie and this way very important for the authentication process. By default the session secret is set to `secret` and never changes. This commit will add a generator for a dynamic session secret if it stays unchanged. It prevents session hijacking this way and will warn the user about the missing secret. This also implies that on a restart without configured session secret will log out all users. While it may seems annoying, it's for the users best. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Merge pull request #786 from SISheogorath/fix/compatiblityConfigChristoph (Sheogorath) Kern2018-03-272-6/+6
|\ \ | | | | | | Fix some issues with legacy config compatiblity
| * | Fix logical error in legacy config expressionSheogorath2018-03-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should check for an undefined and not just for a logical true or false. Example: When `usecdn` was set to false it was impossible to overwrite the new config value because the if statement becomes false. Thanks @davidmehren for pointing me to this issue. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
| * | Rename forgotten valuesSheogorath2018-03-261-4/+4
| |/ | | | | | | | | | | Looks like we forgot something during the migration. This should fix it. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* / Allow embedding of video and audio tagsSheogorath2018-03-251-0/+1
|/ | | | | | | | | | | | | Adding mediaSrc to CSP so video and audio files can be embedded without problems. From a security perspective it should be fine to load audio and video data without introducing a high security issue. Only from a privacy perspective it allows another way to track users if there are data embedded. But it doesn't introduce any new attack vector as pictures are also allowed from everywhere. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* Change config to camel case with backwards compatibilitySheogorath2018-03-2525-182/+235
| | | | | | | | This refactors the configs a bit to now use camel case everywhere. This change should help to clean up the config interface and make it better understandable. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* Merge pull request #771 from SISheogorath/refactor/imageRouterChristoph (Sheogorath) Kern2018-03-217-132/+190
|\ | | | | Refactoring imageRouter to modularity
| * Refactoring imageRouter to modularitySheogorath2018-03-207-132/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This should make the imageRouter more modular and easier to extent. Also a lot of code duplication was removed which should simplify maintenance in future. In the new setup we only need to provide a new module file which exports a function called `uploadImage` and takes a filePath and a callback as argument. The callback itself takes an error and an url as parameter. This eliminates the need of a try-catch-block around the statement and re-enabled the optimization in NodeJS. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Merge pull request #770 from SISheogorath/fix/ldapUUIDChristoph (Sheogorath) Kern2018-03-181-1/+8
|\ \ | | | | | | Add check for undefined UUID
| * | Add check for undefined UUIDSheogorath2018-03-181-1/+8
| |/ | | | | | | | | | | | | | | | | | | | | | | This check is needed at there are tons of LDAP implementations out there and none has at least one guaranteed unique field. As we currently check three fields and added an option to select one yourself, it's still not said that any of these fields is set. This will now create an error and fail the authentication instead of letting people may get access to other people's notes which are stored under a this way deterministic wrong userid named `LDAP-undefined`. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Merge pull request #743 from hackmdio/fix-to-use-url-safe-base64Christoph (Sheogorath) Kern2018-03-184-10/+53
|\ \ | | | | | | Fix to use url-safe base64 in note url
| * | Fix to log instead of throwing error on parse note idMax Wu2018-03-111-2/+4
| | | | | | | | | | | | Signed-off-by: Max Wu <jackymaxj@gmail.com>
| * | Fix parseNoteId order to fix some edge caseMax Wu2018-03-101-7/+7
| | | | | | | | | | | | | | | | | | that LZString note url could be parsed by base64url note url and thus return wrong note id Signed-off-by: Max Wu <jackymaxj@gmail.com>
| * | Improve history migration performanceMax Wu2018-03-101-11/+5
| | | | | | | | | | | | Signed-off-by: Max Wu <jackymaxj@gmail.com>
| * | Update to use buffer in encode/decode note idMax Wu2018-02-271-2/+4
| | | | | | | | | | | | Signed-off-by: Max Wu <jackymaxj@gmail.com>
| * | Add migration for LZString compressed note id in historyMax Wu2018-02-261-1/+21
| | | | | | | | | | | | Signed-off-by: Max Wu <jackymaxj@gmail.com>
| * | Remove and replace all note id compression in LZString with base64urlMax Wu2018-02-263-8/+33
| | | | | | | | | | | | Signed-off-by: Max Wu <jackymaxj@gmail.com>
* | | Merge pull request #757 from SISheogorath/fix/migrationChristoph (Sheogorath) Kern2018-03-171-0/+11
|\ \ \ | | | | | | | | Add missing migration for permissions
| * | | Add missing migration for permissionsSheogorath2018-03-061-0/+11
| | | | | | | | | | | | | | | | Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | | | Add helper function to fix number problemsSheogorath2018-03-162-3/+10
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | As minio causes various problem if you configure it using environment variables and leave the port setting out, which will evaluate to NaN, this change should fix this in a clean way for this time and helps to support numbers in general in future. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | | Merge pull request #761 from SISheogorath/feature/reportURIChristoph (Sheogorath) Kern2018-03-143-2/+11
|\ \ \ | | | | | | | | Add config option for report URI in CSP
| * | | Add config option for report URI in CSPSheogorath2018-03-143-2/+11
| |/ / | | | | | | | | | | | | | | | | | | | | | This option is needed as it's currently not possible to add an report URI by the directives array. This option also allows to get CSP reports not only on docker based setup but also on our heroku instances. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | | Convert HMD_MINIO_PORT into Number type.vazontang2018-03-151-1/+1
| | | | | | | | | | | | | | | fix hackmdio/hackmd#763 Signed-off-by: Tang TsungYi <vazontang@gmail.com>
* | | Multiple emails from LDAP are already an ArrayFelix Schäfer2018-03-091-1/+1
|/ / | | | | | | Signed-off-by: Felix Schäfer <felix@thegcat.net>
* | Remove unused LDAP option `tokenSecret`Felix Schäfer2018-03-052-2/+0
| | | | | | | | | | | | hackmdio/hackmd#754 Signed-off-by: Felix Schäfer <felix@thegcat.net>
* | Introduce ldap.useridFieldDustin Frisch2018-03-013-1/+6
|/ | | | Signed-off-by: Dustin Frisch <fooker@lab.sh>
* Fix to show 500 message when got error in parseNoteIdMax Wu2018-02-171-1/+2
| | | | Signed-off-by: Max Wu <jackymaxj@gmail.com>
* Fix field type to prevent data truncation of authorship (#721)Max Wu2018-02-093-2/+15
| | | | * Fix field type to prevent data truncation of authorship
* Fix typo of DB migration scriptTakeaki Matsumoto2018-02-081-2/+2
| | | | Signed-off-by: Takeaki Matsumoto <takeaki.matsumoto@ntt.com>
* don't require referer to find note id in socket.io connections (fixes #623)Stefan Bühler2018-02-051-6/+14
| | | | Signed-off-by: Stefan Bühler <buehler@cert.uni-stuttgart.de>
* Fix uncaught exception for non-existent userSheogorath2018-01-301-0/+5
| | | | | | | Since we added user management it's possible to get non-existent users which can cause a crash of the Backend server. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* Merge pull request #704 from SISheogorath/fix/ldapProviderNameChristoph (Sheogorath) Kern2018-01-291-0/+2
|\ | | | | Fix ldap provider name in template
| * Fix ldap provider name in templateSheogorath2018-01-261-0/+2
| | | | | | | | | | | | | | | | Before this fix it's impossible to set the provider name in the sign-model since `ldap` is a boolean there and this way not able to have an attribute like `ldap.providerName`. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Remove camel case from `imageuploadtype` in configSheogorath2018-01-274-6/+14
|/ | | | | | | | | | | | | This removes the only camel cased option of the config options **we** added to the config.json. In auth provider's config parts are a lot of camel cased options provided. We shouldn't touch them to keep them as similar as possible to the examples. Fixes #315 Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* Merge pull request #691 from SISheogorath/feature/uploadChristoph (Sheogorath) Kern2018-01-231-0/+20
|\ | | | | Allow more detailed configuration of upload mime types
| * Allow more detailed configuration of upload mime typesSheogorath2018-01-201-0/+20
| | | | | | | | | | | | Fixes #637 Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Fix broken port configSheogorath2018-01-231-1/+1
| | | | | | | | Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
* | Merge pull request #506 from erasys/minioChristoph (Sheogorath) Kern2018-01-233-0/+48
|\ \ | | | | | | Add support for minio
| * | Add support for minioMarc Deop2017-08-303-0/+48
| | |
* | | Merge pull request #598 from xxyy/feature/cspChristoph (Sheogorath) Kern2018-01-224-1/+92
|\ \ \ | | | | | | | | Implement basic CSP support
| * | | Move CSP logic to new file, Fix boolean config examplesLiterallie2017-10-221-0/+80
| | | | | | | | | | | | | | | | Not sure why I was quoting these in the first place
| * | | Change CSP config format to be more intuitiveLiterallie2017-10-222-9/+4
| | | |
| * | | CSP: Allow more content typesLiterallie2017-10-221-3/+7
| | | |
| * | | CSP: Add nonce to slide view inline JSLiterallie2017-10-221-1/+2
| | | |
| * | | CSP: Upgrade insecure requests if possibleLiterallie2017-10-221-2/+3
| | | | | | | | | | | | | | | | Config option; default is to only upgrade if usessl