Skip to content

Commit 559c694

Browse files
author
Till Brehm
committed
Various fixes related to #5415
1 parent ac78281 commit 559c694

File tree

5 files changed

+21
-6
lines changed

5 files changed

+21
-6
lines changed

interface/web/sites/aps_do_operation.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@
6464
}
6565
else if($_GET['action'] == 'delete_instance')
6666
{
67+
// Check CSRF Token
68+
$app->auth->csrf_token_check('GET');
69+
6770
// Make sure a valid package ID is given (also corresponding to the calling user)
6871
$client_id = 0;
6972
$is_admin = ($_SESSION['s']['user']['typ'] == 'admin') ? true : false;

interface/web/sites/aps_install_package.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@
9393
$result['input'] = array();
9494
if(count($_POST) > 1)
9595
{
96+
// Check CSRF Token
97+
$app->auth->csrf_token_check();
98+
9699
$result = $gui->validateInstallerInput($_POST, $details, $domains, $settings);
97100
if(empty($result['error']))
98101
{
@@ -117,13 +120,16 @@
117120
else if($key == 'Requirements PHP settings') $app->tpl->setLoop('pkg_requirements_php_settings', $details['Requirements PHP settings']);
118121
}
119122

123+
// get new csrf token
124+
$csrf_token = $app->auth->csrf_token_get('aps_install_package');
125+
$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']);
126+
$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']);
127+
120128
// Parse the template as far as possible, then do the rest manually
121129
$app->tpl_defaults();
122130
$parsed_tpl = $app->tpl->grab();
123131

124132

125-
// ISPConfig has a very old and functionally limited template engine. We have to style parts on our own...
126-
127133
// Print the domain list
128134
$domains_tpl = '';
129135
if(!empty($domains))

interface/web/sites/aps_installedpackages_list.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,16 @@
112112
$records = $app->db->queryAllRecords($query);
113113
$app->listform_actions->DataRowColor = '#FFFFFF';
114114

115+
$csrf_token = $app->auth->csrf_token_get($app->listform->listDef['name']);
116+
$_csrf_id = $csrf_token['csrf_id'];
117+
$_csrf_key = $csrf_token['csrf_key'];
118+
115119
// Re-form all result entries and add extra entries
116120
$records_new = array();
117121
if(is_array($records))
118122
{
119123
$app->listform_actions->idx_key = $app->listform->listDef["table_idx"];
120-
foreach($records as $rec)
124+
foreach($records as $key => $rec)
121125
{
122126
// Set an abbreviated install location to beware the page layout
123127
$ils = '';
@@ -129,7 +133,9 @@
129133
if($rec['instance_status'] != INSTANCE_REMOVE && $rec['instance_status'] != INSTANCE_INSTALL)
130134
$rec['delete_possible'] = 'true';
131135

132-
$records_new[] = $app->listform_actions->prepareDataRow($rec);
136+
$records_new[$key] = $app->listform_actions->prepareDataRow($rec);
137+
$records_new[$key]['csrf_id'] = $_csrf_id;
138+
$records_new[$key]['csrf_key'] = $_csrf_key;
133139
}
134140
}
135141
$app->tpl->setLoop('records', $records_new);

interface/web/sites/templates/aps_instances_list.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ <h1>{tmpl_var name="list_head_txt"}</h1>
4040
<td><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='instance_status'}</span></td>
4141
<td class="text-right">
4242
<tmpl_if name='delete_possible'>
43-
<a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/aps_do_operation.php?action=delete_instance&id={tmpl_var name='id'}','{tmpl_var name='pkg_delete_confirmation'}')"><span class="icon icon-delete"></span></button>
43+
<a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/aps_do_operation.php?action=delete_instance&id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}','{tmpl_var name='pkg_delete_confirmation'}')"><span class="icon icon-delete"></span></button>
4444
</tmpl_if>
4545
</td>
4646
</tr>

interface/web/sites/templates/aps_packages_list.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ <h1>{tmpl_var name="list_head_txt"}</h1>
3131
<td>{tmpl_var name='version'}-{tmpl_var name='release'}</td>
3232
<td>{tmpl_var name='category'}</td>
3333
<tmpl_if name='is_admin'>
34-
<td><a href="javascript:ISPConfig.loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=change_status&id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');"><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='package_status'}</span></a></td>
34+
<td><a href="javascript:ISPConfig.loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=change_status&id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}');"><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='package_status'}</span></a></td>
3535
</tmpl_if>
3636
<td class="text-right">&nbsp;</td>
3737
</tr>

0 commit comments

Comments
 (0)