File tree Expand file tree Collapse file tree 13 files changed +63
-25
lines changed Expand file tree Collapse file tree 13 files changed +63
-25
lines changed Original file line number Diff line number Diff line change @@ -261,6 +261,9 @@ Features:
261
261
outstanding bugs against the current classhelper using
262
262
current web features. (Patel Malav, Nikunj Thakkar,
263
263
Bharath Kanama with integration by John Rouillard)
264
+ - disable spellcheck on all password fields to try to prevent
265
+ browser from exposing passwords to external servers. (John
266
+ Rouillard)
264
267
265
268
2023-07-13 2.3.0
266
269
Original file line number Diff line number Diff line change @@ -262,6 +262,41 @@ References:
262
262
.. _issue2551282: https://issues.roundup-tracker.org/issue2551282
263
263
.. _issue2551115: https://issues.roundup-tracker.org/issue2551115
264
264
265
+ Disable spellcheck on all password fields (recommended)
266
+ -------------------------------------------------------
267
+
268
+ All tracker templates have been updated to disable spell checking on
269
+ password input fields. This can help prevent exposing the password to
270
+ an external server that provides spell checking for a browser. Since
271
+ passwords should not be real words in any language, spell checking
272
+ serves no purpose.
273
+
274
+ If you have modified your template with a "show password" option you
275
+ should disable spell check.
276
+
277
+ To implement this in your deployed trackers, add::
278
+
279
+ spellcheck="false"
280
+
281
+ to make your password inputs look like::
282
+
283
+ <input type="password" spellcheck="false" name=....>
284
+
285
+ The changed files in the classic/devel/responsive templates are:
286
+
287
+ .. code-block:: text
288
+
289
+ html/page.html
290
+ html/user.item.html
291
+
292
+ and in the jinja2 template the following files were changed:
293
+
294
+ .. code-block:: text
295
+
296
+ html/user.item.html
297
+ html/user.register.html
298
+ html/layout/navigation.html
299
+
265
300
Add new classhelper to your templates (optional)
266
301
------------------------------------------------
267
302
Original file line number Diff line number Diff line change @@ -132,7 +132,7 @@ <h2><span metal:define-slot="body_title">body title</span></h2>
132
132
< p class ="userblock ">
133
133
< b i18n:translate =""> Login</ b > < br >
134
134
< input size ="10 " required name ="__login_name "> < br >
135
- < input size ="10 " type ="password " required name ="__login_password "> < br >
135
+ < input size ="10 " spellcheck =" false " type ="password " required name ="__login_password "> < br >
136
136
< input type ="hidden " name ="@action " value ="Login ">
137
137
< input type ="checkbox " name ="remember " id ="remember ">
138
138
< label for ="remember " i18n:translate =""> Remember me?</ label > < br >
@@ -376,8 +376,8 @@ <h2><span metal:define-slot="body_title">body title</span></h2>
376
376
tal:attributes ="id name; name name; value value; readonly not:edit_ok "
377
377
value ="heinz ">
378
378
<!-- password: type; no initial value -->
379
- < input metal:define-macro ="user_pw_input " type ="password "
379
+ < input metal:define-macro ="user_pw_input " spellcheck =" false " type ="password "
380
380
tal:attributes ="id name; name name; readonly not:edit_ok " value ="">
381
- < input metal:define-macro ="user_confirm_input " type ="password "
381
+ < input metal:define-macro ="user_confirm_input " spellcheck =" false " type ="password "
382
382
tal:attributes ="id string:confirm_$name; name string:@confirm@$name; readonly not:edit_ok " value ="">
383
383
Original file line number Diff line number Diff line change 68
68
< tal:if condition ="edit_ok ">
69
69
< tr tal:define ="name string:password; label string:Login Password ">
70
70
< th metal:use-macro ="th_label "> Login Password</ th >
71
- < td > < input metal:use-macro ="pw_input " type ="password "> </ td >
71
+ < td > < input metal:use-macro ="pw_input " spellcheck =" false " type ="password "> </ td >
72
72
</ tr >
73
73
< tr tal:define ="name string:password; label string:Confirm Password ">
74
74
< th metal:use-macro ="th_label "> Confirm Password</ th >
75
- < td > < input metal:use-macro ="confirm_input " type ="password "> </ td >
75
+ < td > < input metal:use-macro ="confirm_input " spellcheck =" false " type ="password "> </ td >
76
76
</ tr >
77
77
</ tal:if >
78
78
< tal:if condition ="python:request.user.hasPermission('Web Roles') ">
Original file line number Diff line number Diff line change @@ -163,7 +163,7 @@ <h1><a href="/">Roundup Demo Tracker</a></h1>
163
163
< li >
164
164
< tal:span i18n:translate =""> Login</ tal:span > < br />
165
165
< input size ="10 " required name ="__login_name "/> < br />
166
- < input size ="10 " type ="password " required name ="__login_password "/> < br />
166
+ < input size ="10 " spellcheck =" false " type ="password " required name ="__login_password "/> < br />
167
167
< input name ="@csrf " type ="hidden "
168
168
tal:attributes ="value python:utils.anti_csrf_nonce() ">
169
169
< input type ="hidden " name ="@action " value ="Login "/>
@@ -431,9 +431,9 @@ <h1 id="breadcrumb"><span metal:define-slot="body_title">body title</span></h1>
431
431
tal:attributes ="id name; name name; value value; readonly not:edit_ok "
432
432
value ="heinz "/>
433
433
<!-- password: type; no initial value -->
434
- < input metal:define-macro ="user_pw_input " type ="password "
434
+ < input metal:define-macro ="user_pw_input " spellcheck =" false " type ="password "
435
435
tal:attributes ="id name; name name; readonly not:edit_ok " value =""/>
436
- < input metal:define-macro ="user_confirm_input " type ="password "
436
+ < input metal:define-macro ="user_confirm_input " spellcheck =" false " type ="password "
437
437
tal:attributes ="id string:confirm_$name; name string:@confirm@$name; readonly not:edit_ok " value =""/>
438
438
439
439
<!-- SHA: ca32e5f43efcb7c3b4940df6f7a176f6990b15f0 -->
Original file line number Diff line number Diff line change 66
66
< tal:if condition ="edit_ok ">
67
67
< tr tal:define ="name string:password; label string:Login Password ">
68
68
< th metal:use-macro ="th_label "> Login Password</ th >
69
- < td > < input metal:use-macro ="pw_input " type ="password "> </ td >
69
+ < td > < input metal:use-macro ="pw_input " spellcheck =" false " type ="password "> </ td >
70
70
</ tr >
71
71
< tr tal:define ="name string:password; label string:Confirm Password ">
72
72
< th metal:use-macro ="th_label "> Confirm Password</ th >
73
- < td > < input metal:use-macro ="confirm_input " type ="password "> </ td >
73
+ < td > < input metal:use-macro ="confirm_input " spellcheck =" false " type ="password "> </ td >
74
74
</ tr >
75
75
</ tal:if >
76
76
< tal:if condition ="python:request.user.hasPermission('Web Roles') ">
Original file line number Diff line number Diff line change 113
113
< input class ="form-control form-control-sm " type ='text ' required name ="__login_name " placeholder ='username '>
114
114
</ li >
115
115
< li class ="nav-item ">
116
- < input class ="form-control form-control-sm " type ="password " required name ="__login_password " placeholder ='password '>
116
+ < input class ="form-control form-control-sm " spellcheck =" false " type ="password " required name ="__login_password " placeholder ='password '>
117
117
</ li >
118
118
< li class ="nav-item ">
119
119
< label class ="form-control form-control-sm " class ='checkbox '>
Original file line number Diff line number Diff line change 46
46
< tr >
47
47
< th > {% trans %}Login Password{% endtrans %}</ th >
48
48
< td >
49
- < input class ="form-control " type ='password ' name ='password '>
49
+ < input class ="form-control " spellcheck =' false ' type ='password ' name ='password '>
50
50
</ td >
51
51
</ tr >
52
52
< tr >
53
53
< th > {% trans %}Confirm Password{% endtrans %}</ th >
54
54
< td >
55
- < input class ="form-control " type ='password ' name ='@confirm@password '>
55
+ < input class ="form-control " spellcheck =' false ' type ='password ' name ='@confirm@password '>
56
56
</ td >
57
57
</ tr >
58
58
{% endif %}
Original file line number Diff line number Diff line change 32
32
< tr >
33
33
< th > {% trans %}Login Password{% endtrans %}</ th >
34
34
< td >
35
- < input type ='password ' name ='password ' required >
35
+ < input spellcheck =' false ' type ='password ' name ='password ' required >
36
36
</ td >
37
37
</ tr >
38
38
< tr >
39
39
< th > {% trans %}Confirm Password{% endtrans %}</ th >
40
40
< td >
41
- < input type ='password ' name ='@confirm@password '>
41
+ < input spellcheck =' false ' type ='password ' name ='@confirm@password '>
42
42
</ td >
43
43
</ tr >
44
44
{% if request.user.hasPermission('Web Roles') %}
Original file line number Diff line number Diff line change @@ -130,7 +130,7 @@ <h2><span metal:define-slot="body_title">body title</span></h2>
130
130
< p class ="userblock ">
131
131
< b i18n:translate =""> Login</ b > < br >
132
132
< input size ="10 " required name ="__login_name "> < br >
133
- < input size ="10 " type ="password " required name ="__login_password "> < br >
133
+ < input size ="10 " type ="password " spellcheck =" false " required name ="__login_password "> < br >
134
134
< input name ="@csrf " type ="hidden "
135
135
tal:attributes ="value python:utils.anti_csrf_nonce() ">
136
136
< input type ="hidden " name ="@action " value ="Login ">
@@ -338,8 +338,8 @@ <h2><span metal:define-slot="body_title">body title</span></h2>
338
338
tal:attributes ="id name; name name; value value; readonly not:edit_ok "
339
339
value ="heinz ">
340
340
<!-- password: type; no initial value -->
341
- < input metal:define-macro ="user_pw_input " type ="password "
341
+ < input metal:define-macro ="user_pw_input " spellcheck =" false " type ="password "
342
342
tal:attributes ="id name; name name; readonly not:edit_ok " value ="">
343
- < input metal:define-macro ="user_confirm_input " type ="password "
343
+ < input metal:define-macro ="user_confirm_input " spellcheck =" false " type ="password "
344
344
tal:attributes ="id string:confirm_$name; name string:@confirm@$name; readonly not:edit_ok " value ="">
345
345
You can’t perform that action at this time.
0 commit comments