From 9ddefa979a12aff2334d6e7048e142cfdef5bb89 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Mon, 29 Jan 2018 15:56:30 -0800 Subject: Add CSRF check for task and project files upload --- app/Controller/BaseController.php | 7 +++++++ app/Controller/ProjectFileController.php | 1 + app/Controller/TaskFileController.php | 1 + 3 files changed, 9 insertions(+) (limited to 'app/Controller') diff --git a/app/Controller/BaseController.php b/app/Controller/BaseController.php index 43ecfaab..1433ec14 100644 --- a/app/Controller/BaseController.php +++ b/app/Controller/BaseController.php @@ -26,6 +26,13 @@ abstract class BaseController extends Base } } + protected function checkReusableCSRFParam() + { + if (! $this->token->validateReusableCSRFToken($this->request->getRawValue('csrf_token'))) { + throw new AccessForbiddenException(); + } + } + /** * Check webhook token * diff --git a/app/Controller/ProjectFileController.php b/app/Controller/ProjectFileController.php index 83c7779f..a3e23f04 100644 --- a/app/Controller/ProjectFileController.php +++ b/app/Controller/ProjectFileController.php @@ -32,6 +32,7 @@ class ProjectFileController extends BaseController */ public function save() { + $this->checkReusableCSRFParam(); $project = $this->getProject(); $result = $this->projectFileModel->uploadFiles($project['id'], $this->request->getFileInfo('files')); diff --git a/app/Controller/TaskFileController.php b/app/Controller/TaskFileController.php index ff0c299e..4c489238 100644 --- a/app/Controller/TaskFileController.php +++ b/app/Controller/TaskFileController.php @@ -51,6 +51,7 @@ class TaskFileController extends BaseController */ public function save() { + $this->checkReusableCSRFParam(); $task = $this->getTask(); $result = $this->taskFileModel->uploadFiles($task['id'], $this->request->getFileInfo('files')); -- cgit v1.2.3