Verified Commit b9a39e56 authored by Quentin Duchemin's avatar Quentin Duchemin
Browse files

[Wekan] Filter hooks is now internal

Tool is only accessible with the container's network, to avoid potential spam/DOS.
Indeed, one could just call the container's public URL with a forged request to redirect POST requests to an arbitrary server.
With this modification, one could still use Filter Hook with an arbitrary URL, but the call should come from Wekan (i.e. mass move/create cards), which is not worth it.
parent f8e1b510
......@@ -53,13 +53,6 @@ services:
image: registry.picasoft.net/wekan-filter-hooks:v0.2
build: ./filter-hooks
container_name: wekan-filter-hooks
environment:
- KANBAN_URL=https://kanban.picasoft.net
networks:
- proxy
labels:
traefik.http.routers.wekan-filter-hooks.entrypoints: websecure
traefik.http.routers.wekan-filter-hooks.rule: Host(`kanban.picasoft.net`) && Path(`/forward_hooks`)
traefik.http.services.wekan-filter-hooks.loadbalancer.server.port: 5000
traefik.enable: true
- wekan
restart: unless-stopped
......@@ -19,13 +19,15 @@ gunicorn --bind 0.0.0.0:5000 --reload main:app
Supposons que dans une application type Mattermost, on configure un hook **entrant** qui peut recevoir des requêtes `POST` de Wekan. Cette URL est désignée par `URL_HOOK`.
Supposons que cet outil soit déployé à l'adresse `https://URL_FILTER`.
Cet outil est déployé dans le même réseau que le Wekan. Son nom de conteneur est `wekan-filter-hooks`.
Dans Wekan, l'URL du hook sortant sera alors (à la place de `URL_HOOK`) :
```
https://URL_FILTER/forward_hooks?url=URL_HOOK
http://wekan-filter-hooks:5000/forward_hooks?url=URL_HOOK
```
Ainsi, cet outil n'est appelable que depuis Wekan (car le nom d'hôte n'est résolu que dans son réseau), ce qui permet d'éviter un spam extérieur.
Quand il reçoit une requête, l'outil examine le hook et voit si le type d'activité correspond à une liste pré-définie et l'envoie à `URL_HOOK` le cas échéant.
### Type d'activité pris en compte
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment