mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
Fix #342 - Enforce all regexes to comply with safe-regex as a safeguard against possible ReDoS vulnerability
This commit is contained in:
parent
b406b5df2c
commit
2cfd792d24
@ -120,6 +120,7 @@
|
|||||||
"jshint": "~2.12.0",
|
"jshint": "~2.12.0",
|
||||||
"mocha": "~8.2.0",
|
"mocha": "~8.2.0",
|
||||||
"requirejs": "^2.3.2",
|
"requirejs": "^2.3.2",
|
||||||
|
"safe-regex": "^2.1.1",
|
||||||
"uglify-js": "~3.12.0",
|
"uglify-js": "~3.12.0",
|
||||||
"verup": "^1.3.x"
|
"verup": "^1.3.x"
|
||||||
},
|
},
|
||||||
|
29
test/test.js
29
test/test.js
@ -1,3 +1,5 @@
|
|||||||
|
var fs = require('fs');
|
||||||
|
var safe = require('safe-regex');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var requirejs = require('requirejs');
|
var requirejs = require('requirejs');
|
||||||
var UAParser = require('./../src/ua-parser');
|
var UAParser = require('./../src/ua-parser');
|
||||||
@ -121,4 +123,29 @@ describe('Using Require.js', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Testing regexes', function () {
|
||||||
|
|
||||||
|
var regexes;
|
||||||
|
|
||||||
|
// todo: use AST-based instead of grep
|
||||||
|
before('Read main js file', function (done) {
|
||||||
|
fs.readFile('src/ua-parser.js', 'utf8', function (err, data) {
|
||||||
|
regexes = data.match(/(\/.+\/[ig]+)(?=[,\s\n])/g);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Begin testing', function () {
|
||||||
|
it('all regexes in main file', function () {
|
||||||
|
regexes.forEach(function (regex) {
|
||||||
|
describe('Test against `safe-regex` : ' + regex, function () {
|
||||||
|
it('should be safe from potentially vulnerable regex', function () {
|
||||||
|
assert.strictEqual(safe(regex), true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
Loading…
x
Reference in New Issue
Block a user