diff options
author | Marc Alexander <admin@m-a-styles.de> | 2016-09-18 01:14:23 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2016-09-18 15:29:50 +0200 |
commit | 585a3ed863c267f36584a3fb9a0cf35f6a2e4c2d (patch) | |
tree | e637c7b5d95a901a1af505efd97be44a6eafc05d /phpBB/includes/acp/acp_language.php | |
parent | 27e33f39f7553d2f24fdeae004810493f063265d (diff) | |
download | forums-585a3ed863c267f36584a3fb9a0cf35f6a2e4c2d.tar forums-585a3ed863c267f36584a3fb9a0cf35f6a2e4c2d.tar.gz forums-585a3ed863c267f36584a3fb9a0cf35f6a2e4c2d.tar.bz2 forums-585a3ed863c267f36584a3fb9a0cf35f6a2e4c2d.tar.xz forums-585a3ed863c267f36584a3fb9a0cf35f6a2e4c2d.zip |
[ticket/14789] Add link hashes and form tokens to all acp links/buttons
This will further harden the ACP security by adding link hashes to links and
form tokens to forms that did not have these yet and result in modified
settings or write action on the filesystem or database. These few links and
forms were still relying on the global ACP protection, mainly due to them
not posing further risks of compromising data. After this change these will
now also be properly protected against tampering.
PHPBB3-14789
Diffstat (limited to 'phpBB/includes/acp/acp_language.php')
-rw-r--r-- | phpBB/includes/acp/acp_language.php | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/phpBB/includes/acp/acp_language.php b/phpBB/includes/acp/acp_language.php index 3888a411f0..bddc2be9cb 100644 --- a/phpBB/includes/acp/acp_language.php +++ b/phpBB/includes/acp/acp_language.php @@ -244,6 +244,11 @@ class acp_language break; case 'install': + if (!check_link_hash($request->variable('hash', ''), 'acp_language')) + { + trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING); + } + $lang_iso = request_var('iso', ''); $lang_iso = basename($lang_iso); @@ -423,7 +428,7 @@ class acp_language 'ISO' => htmlspecialchars($lang_ary['iso']), 'LOCAL_NAME' => htmlspecialchars($lang_ary['local_name'], ENT_COMPAT, 'UTF-8'), 'NAME' => htmlspecialchars($lang_ary['name'], ENT_COMPAT, 'UTF-8'), - 'U_INSTALL' => $this->u_action . '&action=install&iso=' . urlencode($lang_ary['iso'])) + 'U_INSTALL' => $this->u_action . '&action=install&iso=' . urlencode($lang_ary['iso']) . '&hash=' . generate_link_hash('acp_language')) ); } } |