/[smeserver]/rpms/smeserver-manager/sme10/smeserver-manager-0.1.4-review_csrf_url.patch
ViewVC logotype

Contents of /rpms/smeserver-manager/sme10/smeserver-manager-0.1.4-review_csrf_url.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Mon Nov 15 18:03:45 2021 UTC (2 years, 6 months ago) by michel
Branch: MAIN
CVS Tags: smeserver-manager-0_1_4-22_el7_sme, smeserver-manager-0_1_4-17_el7_sme, smeserver-manager-0_1_4-33_el7_sme, smeserver-manager-0_1_4-10_el7_sme, smeserver-manager-0_1_4-19_el7_sme, smeserver-manager-0_1_4-26_el7_sme, smeserver-manager-0_1_4-18_el7_sme, smeserver-manager-0_1_4-27_el7_sme, smeserver-manager-0_1_4-11_el7_sme, smeserver-manager-0_1_4-16_el7_sme, smeserver-manager-0_1_4-8_el7_sme, smeserver-manager-0_1_4-3_el7_sme, smeserver-manager-0_1_4-32_el7_sme, smeserver-manager-0_1_4-31_el7_sme, smeserver-manager-0_1_4-20_el7_sme, smeserver-manager-0_1_4-25_el7_sme, smeserver-manager-0_1_4-13_el7_sme, smeserver-manager-0_1_4-28_el7_sme, smeserver-manager-0_1_4-15_el7_sme, smeserver-manager-0_1_4-5_el7_sme, smeserver-manager-0_1_4-14_el7_sme, smeserver-manager-0_1_4-6_el7_sme, smeserver-manager-0_1_4-12_el7_sme, smeserver-manager-0_1_4-24_el7_sme, smeserver-manager-0_1_4-29_el7_sme, smeserver-manager-0_1_4-23_el7_sme, smeserver-manager-0_1_4-9_el7_sme, smeserver-manager-0_1_4-4_el7_sme, smeserver-manager-0_1_4-7_el7_sme, smeserver-manager-0_1_4-21_el7_sme, HEAD
* Mon Nov 15 2021 Michel Begue <mab974@misouk.com> 0.1.4-3.sme
- Fix error message when linking, unlinking jquery in spec
- Correct the 'review' panel presentation
- Modify CSRFDefender plugin to take into account GET method
- Add TOKEN param where the GET method is used in templates
- Remove smanager from local url address

1 diff -urN smeserver-manager-0.1.4.old/root/etc/e-smith/templates/usr/share/smanager/themes/default/public/css/styles.css/50body smeserver-manager-0.1.4/root/etc/e-smith/templates/usr/share/smanager/themes/default/public/css/styles.css/50body
2 --- smeserver-manager-0.1.4.old/root/etc/e-smith/templates/usr/share/smanager/themes/default/public/css/styles.css/50body 2021-06-21 13:25:10.000000000 +0400
3 +++ smeserver-manager-0.1.4/root/etc/e-smith/templates/usr/share/smanager/themes/default/public/css/styles.css/50body 2021-11-01 21:53:42.016000000 +0400
4 @@ -126,6 +126,20 @@
5 text-align: right;
6 }
7
8 +td.label {
9 + font-weight: bold;
10 + background-color: #e8f3e1; /*lightgreen;*/
11 + width: 30%;
12 + text-align: right;
13 +}
14 +
15 +span.label2 {
16 + display: inline-block;
17 + font-weight: bold;
18 + background-color: #e8f3e1; /*lightgreen;*/
19 + text-align: right;
20 +}
21 +
22 span.data {
23 padding: 2px;
24 font-weight: bold;
25 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Plugin/CSRFDefender.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Plugin/CSRFDefender.pm
26 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Plugin/CSRFDefender.pm 1970-01-01 04:00:00.000000000 +0400
27 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Plugin/CSRFDefender.pm 2021-11-15 21:45:49.542000000 +0400
28 @@ -0,0 +1,244 @@
29 +package SrvMngr::Plugin::CSRFDefender;
30 +
31 +use strict;
32 +use warnings;
33 +use Carp;
34 +
35 +our $VERSION = '0.0.8-1';
36 +
37 +use base qw(Mojolicious::Plugin Class::Accessor::Fast);
38 +__PACKAGE__->mk_accessors(qw(
39 + parameter_name
40 + session_key
41 + token_length
42 + error_status
43 + error_content
44 + error_template
45 + onetime
46 + get_token_param
47 +
48 +));
49 +
50 +use String::Random;
51 +use Path::Class;
52 +
53 +sub register {
54 + my ($self, $app, $conf) = @_;
55 +
56 + # Plugin config
57 + $conf ||= {};
58 +
59 + # setting
60 + $self->parameter_name($conf->{parameter_name} || 'csrftoken');
61 + $self->session_key($conf->{session_key} || 'csrftoken');
62 + $self->token_length($conf->{token_length} || 32);
63 + $self->error_status($conf->{error_status} || 403);
64 + $self->error_content($conf->{error_content} || 'Forbidden');
65 + $self->onetime($conf->{onetime} || 0);
66 + if ($conf->{error_template}) {
67 + my $file = $app->home->rel_file($conf->{error_template});
68 + $self->error_template($file);
69 + }
70 + $self->get_token_param($conf->{get_token_param} || 'CsrfDef=TOKEN'); # added for GET method
71 +
72 + # input check
73 + $app->hook(before_dispatch => sub {
74 + my ($c) = @_;
75 + unless ($self->_validate_csrf($c)) {
76 + my $content;
77 + if ($self->error_template) {
78 + my $file = file($self->error_template);
79 + $content = $file->slurp;
80 + }
81 + else {
82 + $content = $self->{error_content},
83 + }
84 + $c->render(
85 + status => $self->{error_status},
86 + text => $content,
87 + );
88 + };
89 + });
90 +
91 + # output filter
92 + $app->hook(after_dispatch => sub {
93 + my ($c) = @_;
94 + my $token = $self->_get_csrf_token($c);
95 + my $p_name = $self->parameter_name;
96 + my $g_token = $self->get_token_param;
97 + my $body = $c->res->body;
98 + $body =~ s{(<form\s*[^>]*method=["']POST["'][^>]*>)}{$1\n<input type="hidden" name="$p_name" value="$token" />}isg;
99 + $body =~ s{(\?$g_token)}{\?$p_name=$token}isg; # added for GET method
100 + $c->res->body($body);
101 + });
102 +
103 + return $self;
104 +}
105 +
106 +sub _validate_csrf {
107 + my ($self, $c) = @_;
108 +
109 + my $p_name = $self->parameter_name;
110 + my $s_name = $self->session_key;
111 + my $request_token = $c->req->param($p_name);
112 + my $session_token = $c->session($s_name);
113 +
114 +# POST method or local GET with params.
115 + if ( $c->req->method eq 'POST' or ( $c->req->method eq 'GET' && %{$c->req->params->to_hash} ) ) {
116 + return 0 unless $request_token;
117 + return 0 unless $session_token;
118 + return 0 unless $request_token eq $session_token;
119 + # onetime
120 + $c->session($self->{session_key} => '') if $self->onetime;
121 + }
122 +
123 + return 1;
124 +}
125 +
126 +sub _get_csrf_token {
127 + my ($self, $c) = @_;
128 +
129 + my $key = $self->session_key;
130 + my $token = $c->session($key);
131 + my $length = $self->token_length;
132 + return $token if $token;
133 +
134 + $token = String::Random::random_regex("[a-zA-Z0-9_]{$length}");
135 + $c->session($key => $token);
136 + return $token;
137 +}
138 +
139 +1;
140 +
141 +__END__
142 +
143 +=head1 NAME
144 +
145 +Mojolicious::Plugin::CSRFDefender - Defend CSRF automatically in Mojolicious Application
146 +
147 +
148 +=head1 VERSION
149 +
150 +This document describes Mojolicious::Plugin::CSRFDefender.
151 +
152 +
153 +=head1 SYNOPSIS
154 +
155 + # Mojolicious
156 + $self->plugin('Mojolicious::Plugin::CSRFDefender');
157 +
158 + # Mojolicious::Lite
159 + plugin 'Mojolicious::Plugin::CSRFDefender';
160 +
161 +=head1 DESCRIPTION
162 +
163 +This plugin defends CSRF automatically in Mojolicious Application.
164 +Following is the strategy.
165 +
166 +=head2 output filter
167 +
168 +When the application response body contains form tags with method="post",
169 +this inserts hidden input tag that contains token string into forms in the response body.
170 +For example, the application response body is
171 +
172 + <html>
173 + <body>
174 + <form method="post" action="/get">
175 + <input name="text" />
176 + <input type="submit" value="send" />
177 + </form>
178 + </body>
179 + </html>
180 +
181 +this becomes
182 +
183 + <html>
184 + <body>
185 + <form method="post" action="/get">
186 + <input type="hidden" name="csrf_token" value="zxjkzX9RnCYwlloVtOVGCfbwjrwWZgWr" />
187 + <input name="text" />
188 + <input type="submit" value="send" />
189 + </form>
190 + </body>
191 + </html>
192 +
193 +=head2 input check
194 +
195 +For every POST requests, this module checks input parameters contain the collect token parameter. If not found, throws 403 Forbidden.
196 +
197 +=head1 OPTIONS
198 +
199 + plugin 'Mojolicious::Plugin::CSRFDefender' => {
200 + parameter_name => 'param-csrftoken',
201 + session_key => 'session-csrftoken',
202 + token_length => 40,
203 + error_status => 400,
204 + error_template => 'public/400.html',
205 + };
206 +
207 +=over 4
208 +
209 +=item parameter_name(default:"csrftoken")
210 +
211 +Name of the input tag for the token.
212 +
213 +=item session_key(default:"csrftoken")
214 +
215 +Name of the session key for the token.
216 +
217 +=item token_length(default:32)
218 +
219 +Length of the token string.
220 +
221 +=item error_status(default:403)
222 +
223 +Status code when CSRF is detected.
224 +
225 +=item error_content(default:"Forbidden")
226 +
227 +Content body when CSRF is detected.
228 +
229 +=item error_template
230 +
231 +Return content of the specified file as content body when CSRF is detected. Specify the file path from the application home directory.
232 +
233 +=item onetime(default:0)
234 +
235 +If specified with 1, this plugin uses onetime token, that is, whenever client sent collect token and this middleware detect that, token string is regenerated.
236 +
237 +=back
238 +
239 +=head1 METHODS
240 +
241 +L<Mojolicious::Plugin::CSRFDefender> inherits all methods from
242 +L<Mojolicious::Plugin> and implements the following new ones.
243 +
244 +=head2 C<register>
245 +
246 + $plugin->register;
247 +
248 +Register plugin in L<Mojolicious> application.
249 +
250 +=head1 SEE ALSO
251 +
252 +=over 4
253 +
254 +=item * L<Mojolicious>
255 +
256 +=back
257 +
258 +=head1 REPOSITORY
259 +
260 +https://github.com/shibayu36/p5-Mojolicious-Plugin-CSRFDefender
261 +
262 +=head1 AUTHOR
263 +
264 + C<< <shibayu36 {at} gmail.com> >>
265 +
266 +
267 +=head1 LICENCE AND COPYRIGHT
268 +
269 +Copyright (c) 2011, Yuki Shibazaki C<< <shibayu36 {at} gmail.com> >>. All rights reserved.
270 +
271 +This module is free software; you can redistribute it and/or
272 +modify it under the same terms as Perl itself. See L<perlartistic>.
273 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr.pm
274 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr.pm 2021-10-20 22:30:47.000000000 +0400
275 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr.pm 2021-11-14 22:36:45.633000000 +0400
276 @@ -23,7 +23,7 @@
277 use SrvMngr::Model::Main;
278
279
280 -our $VERSION = '1.401';
281 +our $VERSION = '1.403';
282 $VERSION = eval $VERSION;
283
284 use Exporter 'import';
285 @@ -181,7 +181,9 @@
286 $self->plugin('RenderFile');
287
288 # CSRF protection if production mode
289 - $self->plugin('Mojolicious::Plugin::CSRFDefender' => {
290 +# $self->plugin('Mojolicious::Plugin::CSRFDefender' => {
291 +# Adapted plugin for use with GET method
292 + $self->plugin('SrvMngr::Plugin::CSRFDefender' => {
293 onetime => 1,
294 error_status => 400,
295 error_content => 'Error: CSRF token is invalid or outdated'
296 @@ -814,4 +816,3 @@
297
298
299 1;
300 -
301 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_dom_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_dom_list.html.ep
302 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_dom_list.html.ep 2021-06-21 13:25:10.000000000 +0400
303 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_dom_list.html.ep 2021-11-05 23:55:48.000000000 +0400
304 @@ -42,13 +42,13 @@
305 %= t td => (class => 'sme-border') => $domain->{'Content'}
306 %= t td => (class => 'sme-border') => l('dom_' . $domain->{'Nameservers'})
307
308 - % my $actionModify = "<a href='domains2?trt=UPD&Domain=" . $domain->{Domain} . "'>" . l('MODIFY') . "</a>";
309 + % my $actionModify = "<a href='domains2?CsrfDef=TOKEN&trt=UPD&Domain=" . $domain->{Domain} . "'>" . l('MODIFY') . "</a>";
310
311 % my $removable = ($domain->{Removable} || 'yes');
312 % my $actionRemove = '&nbsp;';
313
314 % if ($removable eq 'yes') {
315 - % $actionRemove = "<a href='domains2?trt=DEL&Domain=" . $domain->{Domain} . "'>" . l('REMOVE') . "</a>";
316 + % $actionRemove = "<a href='domains2?CsrfDef=TOKEN&trt=DEL&Domain=" . $domain->{Domain} . "'>" . l('REMOVE') . "</a>";
317 % }
318
319 <td class='sme-border'><%= $c->render_to_string(inline => $actionModify) %></td>
320 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_grp_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_grp_list.html.ep
321 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_grp_list.html.ep 2021-06-21 13:25:10.000000000 +0400
322 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_grp_list.html.ep 2021-11-05 23:56:07.000000000 +0400
323 @@ -36,8 +36,8 @@
324 <tr>
325 %= t td => (class => 'sme-border') => $group->key
326 %= t td => (class => 'sme-border') => $group->prop('Description')
327 - <td class='sme-border'><a href="groups2?trt=UPD&group=<%= $group->key%>"><%=l 'MODIFY'%></a></td>
328 - <td class='sme-border'><a href="groups2?trt=DEL&group=<%= $group->key%>"><%=l 'REMOVE'%></a></td>
329 + <td class='sme-border'><a href="groups2?CsrfDef=TOKEN&trt=UPD&group=<%= $group->key%>"><%=l 'MODIFY'%></a></td>
330 + <td class='sme-border'><a href="groups2?CsrfDef=TOKEN&trt=DEL&group=<%= $group->key%>"><%=l 'REMOVE'%></a></td>
331 </tr>
332 % }
333 </tbody>
334 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_header.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_header.html.ep
335 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_header.html.ep 2021-06-21 13:25:10.000000000 +0400
336 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_header.html.ep 2021-11-14 22:21:06.985000000 +0400
337 @@ -3,7 +3,7 @@
338 <div id="h2e11">
339 <a target='_blank' href="http://www.koozali.org"><img src="images/smeserver_logo.jpg" height="40" alt="SME Server"></a>
340 </div>
341 - <div id="h2e12"><h5><a href="/smanager/">Server Manager II</a>
342 + <div id="h2e12"><h5><a href="initial">Server Manager II</a>
343 <a href="/server-manager" target='main'>&nbsp &nbsp (Previous)</a></h5>
344 </div>
345 </div>
346 @@ -14,13 +14,13 @@
347 <%= session 'SystemName' %>@<%= session 'DomainName' %></b>
348 </div>
349 <div id="h2e22">
350 - <a target="_parent" href="/smanager/manual">&nbsp;&nbsp;<b> ? </b>&nbsp;&nbsp;</a>&nbsp;
351 + <a target="_parent" href="manual">&nbsp;&nbsp;<b> ? </b>&nbsp;&nbsp;</a>&nbsp;
352 </div>
353 <div id="h2e23">
354 % if ( not defined $c->session->{username} ) {
355 <a target="_parent" href="login"><b>Login</b></a>&nbsp;
356 % } else {
357 - <a target="_parent" href="/smanager/logout"><b><%= $c->session->{username} %> Logout</b></a>&nbsp;
358 + <a target="_parent" href="logout"><b><%= $c->session->{username} %> Logout</b></a>&nbsp;
359 % }
360 </div>
361 </div>
362 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_hos_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_hos_list.html.ep
363 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_hos_list.html.ep 2021-06-21 13:25:10.000000000 +0400
364 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_hos_list.html.ep 2021-11-05 23:56:23.000000000 +0400
365 @@ -46,8 +46,8 @@
366 %= t td => (class => 'sme-border') => $_->{'Comment'};
367 % my ($actionModify, $actionRemove) = '&nbsp;';
368 % if ($_->{'static'} ne 'yes') {
369 - % $actionModify = "<a href='hostentriesd?trt=UPD&Hostname=" . $_->{'HostName'} . "'>" . l('MODIFY') . "</a>";
370 - % $actionRemove = "<a href='hostentriesd?trt=DEL&Hostname=" . $_->{'HostName'} . "'>" . l('REMOVE') . "</a>";
371 + % $actionModify = "<a href='hostentriesd?CsrfDef=TOKEN&trt=UPD&Hostname=" . $_->{'HostName'} . "'>" . l('MODIFY') . "</a>";
372 + % $actionRemove = "<a href='hostentriesd?CsrfDef=TOKEN&trt=DEL&Hostname=" . $_->{'HostName'} . "'>" . l('REMOVE') . "</a>";
373 % }
374 <td class='sme-border'><%= $c->render_to_string(inline => $actionModify) %></td>
375 <td class='sme-border'><%= $c->render_to_string(inline => $actionRemove) %></td>
376 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_iba_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_iba_list.html.ep
377 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_iba_list.html.ep 2021-10-20 22:30:47.000000000 +0400
378 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_iba_list.html.ep 2021-10-09 23:01:31.000000000 +0400
379 @@ -47,18 +47,18 @@
380 %= t td => (class => 'sme-border') => $ibay->prop('Name')
381 % my ($actionModify, $actionResetPw, $actionRemove) = '&nbsp;';
382 % if ($modifiable eq 'yes') {
383 - % $actionModify = "<a href='ibaysd?trt=UPD&ibay=" . $ibay->key . "'>" . l('MODIFY') . "</a>";
384 + % $actionModify = "<a href='ibaysd?CsrfDef=TOKEN&trt=UPD&ibay=" . $ibay->key . "'>" . l('MODIFY') . "</a>";
385 % }
386 % if ($passwordable eq 'yes') {
387 % if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) {
388 - % $actionResetPw .= "<a href='ibaysd?trt=PWD&ibay=" . $ibay->key . "' class='error'>" . l('PASSWORD_RESET') . "</a>";
389 + % $actionResetPw .= "<a href='ibaysd?CsrfDef=TOKEN&trt=PWD&ibay=" . $ibay->key . "' class='error'>" . l('PASSWORD_RESET') . "</a>";
390 % } else {
391 - % $actionResetPw .= "<a href='ibaysd?trt=PWD&ibay=" . $ibay->key . "'>" . l('PASSWORD_RESET') . "</a>";
392 + % $actionResetPw .= "<a href='ibaysd?CsrfDef=TOKEN&trt=PWD&ibay=" . $ibay->key . "'>" . l('PASSWORD_RESET') . "</a>";
393 % }
394 % $actionResetPw .= '&nbsp';
395 % }
396 % if ($removable eq 'yes') {
397 - % $actionRemove = "<a href='ibaysd?trt=DEL&ibay=" . $ibay->key . "'>" . l('REMOVE') . "</a>";
398 + % $actionRemove = "<a href='ibaysd?CsrfDef=TOKEN&trt=DEL&ibay=" . $ibay->key . "'>" . l('REMOVE') . "</a>";
399 % }
400 <td class='sme-border'><%= $c->render_to_string(inline => $actionModify) %></td>
401 <td class='sme-border'><%= $c->render_to_string(inline => $actionResetPw) %></td>
402 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_ln_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_ln_list.html.ep
403 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_ln_list.html.ep 2020-11-19 11:53:26.000000000 +0400
404 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_ln_list.html.ep 2021-11-05 23:56:34.000000000 +0400
405 @@ -82,7 +82,7 @@
406 %= t td => (class => 'sme-border') => $localnetwork->prop('Router')
407 % if ($removable eq "yes") {
408 <td class='sme-border'>
409 - <a href="/smanager/localnetworksd?trt=DEL&localnetwork=<%= $localnetwork->key%>"><%=l 'REMOVE'%></a></td>
410 + <a href="localnetworksd?CsrfDef=TOKEN&trt=DEL&localnetwork=<%= $localnetwork->key%>"><%=l 'REMOVE'%></a></td>
411 % } else {
412 <td class='sme-border'> </td>
413 %}
414 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_pf_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_pf_list.html.ep
415 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_pf_list.html.ep 2020-11-19 11:53:26.000000000 +0400
416 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_pf_list.html.ep 2021-11-05 23:56:46.000000000 +0400
417 @@ -98,7 +98,7 @@
418 %= t td => (class => 'sme-border') => $allow
419 %= t td => (class => 'sme-border') => $cmmnt
420 <td class='sme-border'>
421 - <a href="/smanager/portforwardingd?trt=DEL&sport=<%= $sport%>&proto=<%= $proto%>"><%=l 'REMOVE'%></a></td>
422 + <a href="portforwardingd?CsrfDef=TOKEN&trt=DEL&sport=<%= $sport%>&proto=<%= $proto%>"><%=l 'REMOVE'%></a></td>
423 </tr>
424 % }
425 % }
426 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_prt_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_prt_list.html.ep
427 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_prt_list.html.ep 2021-10-20 22:30:47.000000000 +0400
428 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_prt_list.html.ep 2021-11-05 23:56:56.000000000 +0400
429 @@ -55,7 +55,7 @@
430 %= t td => (class => 'sme-border') => $printer->prop('Location')
431 %= t td => (class => 'sme-border') => $address
432 %= t td => (class => 'sme-border') => $remoteName
433 - <td class='sme-border'><a href="printers2?trt=DEL&printer=<%= $printer->key%>"><%=l 'REMOVE'%></a></td>
434 + <td class='sme-border'><a href="printers2?CsrfDef=TOKEN&trt=DEL&printer=<%= $printer->key%>"><%=l 'REMOVE'%></a></td>
435 </tr>
436 % }
437 </tbody>
438 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_pse_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_pse_list.html.ep
439 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_pse_list.html.ep 2021-06-21 13:25:10.000000000 +0400
440 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_pse_list.html.ep 2021-11-05 23:57:06.000000000 +0400
441 @@ -52,10 +52,10 @@
442
443 % my ($actionModify, $actionRemove) = '&nbsp;';
444 % if ($modifiable eq 'yes') {
445 - % $actionModify = "<a href='pseudonyms2?trt=UPD&pseudonym=" . $pseudonym->key . "'>" . l('MODIFY') . "</a>";
446 + % $actionModify = "<a href='pseudonyms2?CsrfDef=TOKEN&trt=UPD&pseudonym=" . $pseudonym->key . "'>" . l('MODIFY') . "</a>";
447 % }
448 % if ($removable eq 'yes') {
449 - % $actionRemove = "<a href='pseudonyms2?trt=DEL&pseudonym=" . $pseudonym->key . "'>" . l('REMOVE') . "</a>";
450 + % $actionRemove = "<a href='pseudonyms2?CsrfDef=TOKEN&trt=DEL&pseudonym=" . $pseudonym->key . "'>" . l('REMOVE') . "</a>";
451 % }
452
453 <td class='sme-border'><%= $c->render_to_string(inline => $actionModify) %></td>
454 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_quo_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_quo_list.html.ep
455 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_quo_list.html.ep 2021-10-20 22:30:47.000000000 +0400
456 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_quo_list.html.ep 2021-11-05 23:57:15.000000000 +0400
457 @@ -56,7 +56,7 @@
458 %= t td => (class => 'sme-border') => sprintf("%.2f", $bs / 1024 )
459 %= t td => (class => 'sme-border') => sprintf("%.2f", $bh / 1024 )
460 %= t td => (class => 'sme-border') => sprintf("%.2f", $bc / 1024 )
461 - <td class='sme-border'><a href="quotad?trt=UPD&user=<%= $user->key%>"><%=l 'MODIFY'%></a></td>
462 + <td class='sme-border'><a href="quotad?CsrfDef=TOKEN&trt=UPD&user=<%= $user->key%>"><%=l 'MODIFY'%></a></td>
463 </tr>
464 % }
465 </tbody>
466 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_usr_list.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_usr_list.html.ep
467 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_usr_list.html.ep 2021-10-20 22:30:47.000000000 +0400
468 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_usr_list.html.ep 2021-10-10 23:46:45.000000000 +0400
469 @@ -60,19 +60,19 @@
470 %= t td => (class => 'sme-border') => $fwd
471 % my ($actionModify, $actionLock, $actionResetPw, $actionRemove) = '&nbsp;';
472 % if ($username eq 'admin') {
473 - % $actionModify = "<a href='useraccountsd?trt=UPS&user=" . $username . "'>" . l('MODIFY') . "</a>";
474 - % $actionResetPw = "<a href='useraccountsd?trt=PWS&user=" . $username . "'>" . l('PASSWORD_RESET') . "</a>";
475 + % $actionModify = "<a href='useraccountsd?CsrfDef=TOKEN&trt=UPS&user=" . $username . "'>" . l('MODIFY') . "</a>";
476 + % $actionResetPw = "<a href='useraccountsd?CsrfDef=TOKEN&trt=PWS&user=" . $username . "'>" . l('PASSWORD_RESET') . "</a>";
477 % } else {
478 - % $actionModify = "<a href='useraccountsd?trt=UPD&user=" . $username . "'>" . l('MODIFY') . "</a>";
479 + % $actionModify = "<a href='useraccountsd?CsrfDef=TOKEN&trt=UPD&user=" . $username . "'>" . l('MODIFY') . "</a>";
480 % if ($password_set ne 'yes') {
481 % $actionLock = l('ACCOUNT_LOCKED');
482 - % $actionResetPw = "<a href='useraccountsd?trt=PWD&user=" . $username . "' class='error'>" . l('PASSWORD_RESET') . "</a>";
483 + % $actionResetPw = "<a href='useraccountsd?CsrfDef=TOKEN&trt=PWD&user=" . $username . "' class='error'>" . l('PASSWORD_RESET') . "</a>";
484 % } else {
485 - % $actionLock = "<a href='useraccountsd?trt=LCK&user=" . $username . "'>" . l('usr_LOCK_ACCOUNT') . "</a>";
486 - % $actionResetPw = "<a href='useraccountsd?trt=PWD&user=" . $username . "'>" . l('PASSWORD_RESET') . "</a>";
487 + % $actionLock = "<a href='useraccountsd?CsrfDef=TOKEN&trt=LCK&user=" . $username . "'>" . l('usr_LOCK_ACCOUNT') . "</a>";
488 + % $actionResetPw = "<a href='useraccountsd?CsrfDef=TOKEN&trt=PWD&user=" . $username . "'>" . l('PASSWORD_RESET') . "</a>";
489 % }
490 % if ( $removable eq 'yes' ) {
491 - % $actionRemove = "<a href='useraccountsd?trt=DEL&user=" . $username . "'>" . l('REMOVE') . "</a>";
492 + % $actionRemove = "<a href='useraccountsd?CsrfDef=TOKEN&trt=DEL&user=" . $username . "'>" . l('REMOVE') . "</a>";
493 % }
494 % }
495 <td class='sme-border'><%= $c->render_to_string(inline => $actionModify) %></td>
496 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/review.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/review.html.ep
497 --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/review.html.ep 2020-11-19 11:53:26.000000000 +0400
498 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/review.html.ep 2021-07-27 21:08:13.000000000 +0400
499 @@ -8,123 +8,123 @@
500 %= form_for 'review' => begin
501 <b>
502 %=l 'rvw_NETWORKING_PARAMS'
503 - </b><br><br>
504 + </b><br>
505
506 - <b>
507 + <p><span class=label>
508 %=l 'rvw_SERVER_MODE'
509 - </b>
510 + </span>
511 %= $rvw_datas->{servermode}
512 - <br>
513 + </p>
514
515 - <b>
516 + <p><span class=label>
517 %=l 'rvw_LOCAL_IP_ADDRESS_SUBNET_MASK'
518 - </b>
519 + </span>
520 %= $rvw_datas->{localip}
521 - <br>
522 + </p>
523
524 % if ( $rvw_datas->{publicip} ) {
525 - <b>
526 + <p><span class=label>
527 %=l 'rvw_INTERNET_VISIBLE_ADDRESS'
528 - </b>
529 + </span>
530 %= $rvw_datas->{publicip}
531 - <br>
532 + </p>
533 % }
534
535 - <b>
536 + <p><span class=label>
537 %=l 'rvw_GATEWAY'
538 - </b>
539 + </span>
540 %= $rvw_datas->{gateway}
541 %= $rvw_datas->{serveronly}
542 - <br>
543 + </p>
544
545 - <b>
546 + <p><table width='100%'><tr><td class=label><!--span class=label-->
547 %=l 'rvw_ADDITIONAL_LOCAL_NETWORKS'
548 - </b>
549 + <!--/span--></td><td>
550 %= $c->render_to_string( inline => $rvw_datas->{addlocalnetworks} );
551 - <br>
552 + </td></tr></table>
553 + </p>
554
555 - <b>
556 + <p><span class=label>
557 %=l 'rvw_DHCP_SERVER'
558 - </b>
559 + </span>
560 %= $rvw_datas->{dhcpserver}
561 - <br>
562 - <br><br>
563 - <b>
564 + </p>
565 +
566 + <br><br><b>
567 %=l 'rvw_SERVER_NAMES'
568 - </b><br><br>
569 + </b><br>
570
571 - <b>
572 + <p><span class=label>
573 %=l 'rvw_DNS_SERVER'
574 - </b>
575 + </span>
576 %= $rvw_datas->{dnsserver}
577 - <br>
578 + </p>
579
580 - <b>
581 + <p><span class=label>
582 %=l 'rvw_WEB_SERVER'
583 - </b>
584 + </span>
585 %= $rvw_datas->{webserver}
586 - <br>
587 + </p>
588
589 - <b>
590 + <p><span class=label>
591 %=l 'rvw_PROXY_SERVER'
592 - </b>
593 + </span>
594 %= $rvw_datas->{proxyserver}
595 - <br>
596 + </p>
597
598 - <b>
599 + <p><span class=label>
600 %=l 'rvw_FTP_SERVER'
601 - </b>
602 + </span>
603 %= $rvw_datas->{ftpserver}
604 - <br>
605 + </p>
606
607 - <b>
608 + <p><span class=label>
609 %=l 'rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS'
610 - </b>
611 + </span>
612 %= $rvw_datas->{smtpserver}
613 - <br>
614 + </p>
615
616 - <br><br>
617 - <b>
618 + <br><br><b>
619 %=l 'rvw_DOMAIN_INFORMATION'
620 - </b><br><br>
621 + </b><br>
622
623 - <b>
624 + <p><span class=label>
625 %=l 'rvw_PRIMARY_DOMAIN'
626 - </b>
627 + </span>
628 %= $rvw_datas->{domainname}
629 - <br>
630 + </p>
631
632 - <b>
633 + <p><span class=label>
634 %=l 'rvw_VIRTUAL_DOMAINS'
635 - </b>
636 + </span>
637 %= $rvw_datas->{virtualdomains}
638 - <br>
639 + </p>
640
641 - <b>
642 + <p><span class=label>
643 %=l 'rvw_PRIMARY_WEB_SITE'
644 - </b>
645 + </span>
646 %= $rvw_datas->{primarywebsite}
647 - <br>
648 + </p>
649
650 - <b>
651 + <p><span class=label>
652 %=l 'rvw_SERVER_MANAGER'
653 - </b>
654 + </span>
655 %= $rvw_datas->{servermanager}
656 - <br>
657 + </p>
658
659 - <b>
660 + <p><span class=label>
661 %=l 'rvw_USER_PASSWORD_PANEL'
662 - </b>
663 + </span>
664 %= $rvw_datas->{usermanager}
665 - <br>
666 + </p>
667
668 - <b>
669 + <p><table width='100%'><tr><td class=label>
670 %=l 'rvw_EMAIL_ADDRESSES'
671 - </b>
672 + </td><td>
673 %= $rvw_datas->{emailaddresses}
674 - <br>
675 -
676 - % end
677 + </td></tr></table></p>
678 +
679 + % end
680
681 </div>
682

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed