Asger F
dfe3f254de
JS: generalize to include default imports
2019-02-13 18:03:57 +00:00
Max Schaefer
b314c546e1
JavaScript: Track taint through RegExp.prototype.replace.
2019-02-08 09:57:07 +00:00
Asger F
9aaea40719
JS: address comments and support TrackedNode
2019-01-16 11:12:38 +00:00
semmle-qlci
8655e5ae17
Merge pull request #768 from xiemaisi/js/call-summaries
...
Approved by asger-semmle
2019-01-16 08:35:31 +00:00
Anders Schack-Mulligen
e58094c732
Javascript: Autoformat.
2019-01-11 11:02:42 +01:00
Max Schaefer
7d2d33840a
JavaScript: Track flow through forwarding higher-order calls.
2019-01-11 09:15:58 +00:00
Max Schaefer
edc5117dfd
JavaScript: Track flow into (simple) higher-order function calls.
...
The only case we support for now are functions that invoke one of their arguments, passing another argument as input.
2019-01-11 08:11:15 +00:00
Max Schaefer
c75d785684
JavaScript: Fix modelling of _.partial.
...
Like `Function.prototype.bind` (but unlike `ramda.partial`) it takes the curried arguments as rest arguments, not as an array;
cf. https://lodash.com/docs/4.17.10#partial and https://underscorejs.org/#partial .
2018-10-31 06:31:59 -04:00
Max Schaefer
5727b2a5f4
JavaScript: Properly handle value-preserving paths.
...
When constructing a path through a property write/read pair, we want to make sure that we only use value-preserving steps to track the base object. However, the value flowing in from the right-hand side of the assignment may have a different flow label (such as `taint()`), so we cannot use the normal `append` predicate to construct the composite path.
2018-10-03 15:49:02 +01:00
Max Schaefer
910d6de47d
JavaScript: Add new tests.
2018-10-03 15:49:02 +01:00
Max Schaefer
f4ea8bc82a
JavaScript: Introduce flow labels.
2018-10-03 15:49:02 +01:00
Max Schaefer
f3239cbec9
JavaScript: Respect barriers on return edges.
2018-10-03 15:49:01 +01:00
Pavel Avgustinov
b55526aa58
QL code and tests for C#/C++/JavaScript.
2018-08-02 17:53:23 +01:00