Skip to content

Commit edd0abe

Browse files
committed
Fixes #237: stricter Base64 checks.
1 parent a3de226 commit edd0abe

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

js/app.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,13 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
419419
return;
420420
}
421421

422+
if(!window.isValidBase64String(parts[0], true) ||
423+
!window.isValidBase64String(parts[1], true) ||
424+
!window.isValidBase64String(parts[2], true)) {
425+
$('.input').addClass('error');
426+
return;
427+
}
428+
422429
var decodedHeader = window.decode(parts[0]);
423430

424431
try {

js/jwt.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,12 @@ window.sign = function (algorithm, header, payload, key, isSecretBase64Encoded)
103103
return {result: value, error: error};
104104
};
105105

106-
window.isValidBase64String = function (s) {
106+
window.isValidBase64String = function (s, urlOnly) {
107107
try {
108-
var validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_+/=';
108+
var validChars = urlOnly ?
109+
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=' :
110+
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_+/=';
111+
109112
var hasPadding = false;
110113
for(var i = 0; i < s.length; ++i) {
111114
hasPadding |= s.charAt(i) === '=';

0 commit comments

Comments
 (0)