Max Schaefer
94242b3b94
JavaScript: Exclude step summary query from flow-summaries suite.
...
In its current form, this query produces way too many results.
2019-01-09 09:09:58 +00:00
Max Schaefer
fae419c5d2
JavaScript: Add guide to using summaries.
2019-01-09 09:09:58 +00:00
Max Schaefer
8e36c60326
JavaScript: Add a few examples that cause cyclic portals.
2019-01-09 09:09:58 +00:00
Max Schaefer
132570940a
JavaScript: Add support for annotation comments specifying additional sources and sinks.
2019-01-09 09:09:58 +00:00
Max Schaefer
bdf29d010a
JavaScript: Allow summary details to be omitted.
...
If a summary does not specify a configuration, it is taken to apply to all configurations without custom sanitisers/barriers.
If a source summary does not specify a flow label, `data` is assumed.
If a sink summary does not specify a flow label, both `data` and `taint` are assumed.
Flow step summaries cannot omit flow labels.
Note that the standard extraction queries always provide explicit configurations and flow labels, and hence do not exercise this functionality.
2019-01-09 09:09:58 +00:00
Max Schaefer
7c87c43511
JavaScript: Import flow summaries through external predicates.
2019-01-09 09:09:58 +00:00
Max Schaefer
90ad8e3858
JavaScript: Import flow summaries from CSV data.
2019-01-09 09:09:58 +00:00
Max Schaefer
f4fed3657d
JavaScript: Add flow summary extraction queries.
2019-01-09 09:09:58 +00:00
Max Schaefer
6d893d4be7
JavaScript: Allow additional sources, sinks and steps to specify flow labels.
2019-01-09 09:09:57 +00:00
Max Schaefer
98a763ae4b
JavaScript: Add QL library for modelling portals between npm packages.
2019-01-09 09:06:55 +00:00
Max Schaefer
7e7899faba
JavaScript: Add predicate DataFlow::Node.getTopLevel().
2019-01-09 09:05:11 +00:00
Max Schaefer
3e56e9eaf9
JavaScript: Add predicate AbstractCallable.getDefinition.
2019-01-09 09:05:09 +00:00
Asger F
45a5d0ee3a
JS: autoformat
2019-01-08 12:30:07 +00:00
Asger F
6816f33a3d
JS: Handle case-insensitive lodash imports
2019-01-08 12:29:28 +00:00
Max Schaefer
8951eaead3
JavaScript: Improve caching of getACallee and related predicates.
2019-01-08 09:42:44 +00:00
Max Schaefer
627583fffa
JavaScript: Refactor UselessConditional for performance.
2019-01-08 09:40:49 +00:00
Max Schaefer
de429752d1
JavaScript: Restructure implementation of DataFlow::SourceNode.
...
It now uses a facade pattern similar to `InvokeNode`: the range of the class is defined by an abstract class `DataFlow::SourceNode::Range`, while the actual behaviour is defined by the (no longer abstract) `SourceNode` class itself.
Clients that want to add new source nodes need to extend `DataFlow::SourceNode::Range`, those that want to refine the behaviour of existing source nodes should extend `DataFlow::SourceNode` itself.
While this is technically a breaking API change, I think separating the two aspects in this way is cleaner and makes it easier to use, and improves performance as well.
2019-01-08 08:01:20 +00:00
Max Schaefer
31bb39a810
JavaScript: Autoformat all QL files.
2019-01-07 10:15:45 +00:00
Max Schaefer
b4f400fb23
Merge remote-tracking branch 'upstream/next' into qlucie/master
2019-01-04 10:35:57 +00:00
semmle-qlci
6b27dcabc5
Merge pull request #704 from asger-semmle/ts-binary-exprs
...
Approved by esben-semmle
2019-01-04 08:37:41 +00:00
semmle-qlci
8174fb51ae
Merge pull request #705 from asger-semmle/loop-index-concurrent-modification
...
Approved by mc-semmle, xiemaisi
2019-01-03 17:06:12 +00:00
semmle-qlci
6c768263d2
Merge pull request #716 from xiemaisi/js/cosmetics
...
Approved by esben-semmle
2019-01-03 16:11:50 +00:00
Asger F
f24313a215
JS: address doc review
2019-01-03 10:49:36 +00:00
Max Schaefer
0a2df6c00d
JavaScript: Highlight id attribute (not entire element) in AmbiguousIdAttribute.
2019-01-02 11:44:02 +00:00
Asger F
bc59e65222
JS: update suite file
2019-01-02 11:42:47 +00:00
Asger F
9f22da4557
JS: rename query to "Loop iteration skipped due to shifting"
2019-01-02 11:34:06 +00:00
Asger F
8c3b44a525
JS: address comments
2019-01-02 11:12:52 +00:00
Max Schaefer
a9844b2eda
JavaScript: Fix performance regression in IncorrectSuffixCheck.
2019-01-02 10:23:16 +00:00
Esben Sparre Andreasen
c57f8a6d6e
Merge pull request #691 from asger-semmle/sendfile-root
...
JS: Recognize 'root' option in Express res.sendFile
2018-12-19 16:06:15 +01:00
semmle-qlci
495a1fcf3b
Merge pull request #698 from asger-semmle/remove-cookie-as-source
...
Approved by esben-semmle
2018-12-19 15:05:44 +00:00
semmle-qlci
b11b714152
Merge pull request #696 from esben-semmle/js/host-request-forgery
...
Approved by asger-semmle
2018-12-19 15:04:08 +00:00
Asger F
ce18aca62b
JS: update expected output
2018-12-19 11:30:46 +00:00
Asger F
78334af354
JS: remove cookie source; rely on persistent flow steps instead
2018-12-19 11:23:51 +00:00
Asger F
a91599e7fd
TS: bump extractor version string
2018-12-19 10:37:27 +00:00
Asger F
0e40717358
JS: recognize res.sendfile root option
2018-12-19 10:25:15 +00:00
Asger F
f84301e476
JS: add tests with res.sendFile root option
2018-12-19 10:25:15 +00:00
Asger F
f9d7f8ba11
JS: fix links in qhelp
2018-12-19 10:10:56 +00:00
Asger F
f57454951b
JS: move <ul> outside of <p> element
2018-12-18 14:15:12 +00:00
Asger F
7f538e82c0
JS: add test case for non-whitelisted use of location
2018-12-18 13:55:05 +00:00
Asger F
02978c97f1
JS: whitelist $(location) in simple cases
2018-12-18 13:11:42 +00:00
Asger F
c17eca90a1
JS: add test case for $(location)
2018-12-18 13:06:12 +00:00
semmle-qlci
c37d655fe8
Merge pull request #697 from esben-semmle/js/fix-heuristics-compilation-time
...
Approved by asger-semmle
2018-12-18 09:07:36 +00:00
Asger F
2044f5fe89
TS: reorganize convertBinaryExpression and create AssignmentExpression when appropriate
2018-12-17 16:23:46 +00:00
Asger F
cc0961a988
TS: translate logical operators correctly
2018-12-17 15:41:15 +00:00
Asger F
d595f20cb1
JS: add to correctness-more suite
2018-12-17 15:29:10 +00:00
Asger F
280382e91e
JS: whitelist if array access at another index is seen
2018-12-17 15:19:26 +00:00
Asger F
5040d3e26c
JS: add query for loop index bug
2018-12-17 13:35:44 +00:00
Jonas Jensen
5ac5aa0c2a
Merge remote-tracking branch 'upstream/master' into mergeback-20181217
2018-12-17 13:42:45 +01:00
Esben Sparre Andreasen
4a631b42d4
JS: use .lastIndexOf in js/incomplete-url-substring-sanitization
2018-12-17 13:22:31 +01:00
Asger F
7adf1d9958
Merge pull request #631 from esben-semmle/js/bad-url-regexing
...
JS: add query: js/incomplete-url-regexp
2018-12-17 11:53:22 +00:00