Rasmus Wriedt Larsen
bfa7553095
Python: urlsplit sanitizer handles in [KNOWN_VALUE]
2020-02-21 16:03:29 +01:00
Rasmus Wriedt Larsen
798db91f71
Python: Add more urlsplit tests
2020-02-21 15:51:33 +01:00
Rasmus Wriedt Larsen
31ff652cb3
Python: Make Sanitizer available for urlsplit taint
...
It isn't used by default, it has to *actively* be enabled.
2020-02-21 15:18:53 +01:00
Rasmus Wriedt Larsen
083dd4380b
Python: Add example for how to write your own sanitizer
2020-02-21 14:28:48 +01:00
Rebecca Valentine
2f3ea10cf8
Move the query and examples over to 2/query-tests
2020-02-20 16:31:58 -08:00
Rebecca Valentine
91ea46f5ee
Adds test output.
2020-02-20 15:41:51 -08:00
Rebecca Valentine
115495450d
Adds test cases.
2020-02-20 15:41:51 -08:00
Rebecca Valentine
96b8d78650
Adds modernized files.
2020-02-20 15:41:51 -08:00
Rasmus Wriedt Larsen
1029f04e76
Python: TarSlip sanitizer: handle not
2020-02-20 16:27:54 +01:00
Rasmus Wriedt Larsen
3c317ed0e6
Python: TarSlip sanitizer: only clear taint on false edge
...
maybe it was on purpose, will have to investigate FPs when query is good
2020-02-20 16:11:24 +01:00
Rasmus Wriedt Larsen
2d637e1cf7
Python: Add more tarslip examples
2020-02-20 16:09:10 +01:00
Rasmus Wriedt Larsen
fd270cc02c
Python: Add basic taint support for urlsplit/urlparse
2020-02-19 16:31:10 +01:00
Rasmus Wriedt Larsen
74345b1c05
Python: Make library-tests/taint/strings tests more transparent
...
Following the setup I invented for library-tests/taint/unpacking.
TestStep is still a bit annoying, since the output is not easy to eyeball; but
for now I guess we can live with it :)
I honestly didn't get the point of DistinctStringKinds.ql, other than showing we
can handle multiple taint kinds
2020-02-19 16:24:22 +01:00
Rasmus Wriedt Larsen
e7fdfd3d3e
Python: Move subprocess.call so super-class detection works
...
This is a temporary fix!
Added minimal working example (MWE) as a regression, so it's easier to fix the
real problem.
only Python 3 is facing the problem -- and without --max-import-depth=1 the test
times out at 10 minutes :O
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
0509228296
Python: Make ModelUsage test language agnostic
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
87eff7f062
Python: More iterator => iterable renaming
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
82b29b5698
Python: Recognize shebangs in module usage detection
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
01f5b3dc63
Python: Add a script that we can't classify usage of
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
3e7e9636ea
Python: Add ModuleValue.{isUsedAsModule, isUsedAsScript}
...
and a few test cases
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
79a4d7e9cc
Python: Add some confusing (but valid) property tests
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
67e9edb820
Python: Add PropertyValue
...
+ Extend PropertyInternal.getSetter to handle non-decorator
+ Add PropertyInternal.getDeleter
It seems like a bit hacky way to do things, since we're not using the
PropertySetterOrDeleter class at all, but for now I'll leave it be.
2020-02-19 14:12:22 +01:00
Rasmus Wriedt Larsen
e747add485
Python: Descriptor tests fixup (3/3)
...
Better tests for properties
2020-02-19 14:10:29 +01:00
Rasmus Wriedt Larsen
aed7bfb820
Python: Descriptor tests fixup (2/3)
...
Test format improved
2020-02-19 14:10:29 +01:00
Rasmus Wriedt Larsen
3f49aeecfe
Python: Descriptor tests fixup (1/3)
2020-02-19 14:10:29 +01:00
Rasmus Wriedt Larsen
13568b7b9f
Python: Modernise Statements/ queries
...
Almost. Left out a few things marked with TODO
2020-02-19 14:10:29 +01:00
Rasmus Wriedt Larsen
6e349eb6e7
Python: Make py/side-effect-in-assert handle example
...
Also removed parantheses
2020-02-19 14:05:55 +01:00
Rasmus Wriedt Larsen
ae8dbd81f3
Python: Update test-file for py/redundant-assignment
...
now the test code can be pasted, and actually works ;)
2020-02-19 14:05:55 +01:00
Rebecca Valentine
7997e1dc98
Merge branch 'master' into objectapi-to-valueapi-expectedmappingforformatstring
2020-02-18 21:33:12 -08:00
Rebecca Valentine
810efef9de
Adds python3 test
2020-02-18 15:02:47 -08:00
Rebecca Valentine
e55f01d905
Adds new UseofApply test case and results to the Python2 tests dir
2020-02-18 12:12:25 -08:00
Taus
ffbb5d0529
Merge pull request #2739 from RasmusWL/python-modernise-security
...
Python: modernise Security/ queries
2020-02-18 16:28:53 +01:00
Rasmus Wriedt Larsen
5a0babe88b
Python: Add support for Django 2.x and 3.x
...
I changed the django mock to support both 1.x and 2.x routing APIs, which is not
really a nice long term solution.
2020-02-18 11:22:35 +01:00
Rebecca Valentine
4178002d59
Merge branch 'master' into python-objectapi-to-valueapi-useofapply
2020-02-17 17:20:00 -08:00
Rebecca Valentine
13cd8d2435
Fixes expected results bug
2020-02-17 11:47:03 -08:00
Rasmus Wriedt Larsen
362e7aebbb
Python: Add HttpRedirectSinks test for django
2020-02-17 16:54:06 +01:00
Rasmus Wriedt Larsen
a3c6472b9b
Python: Improve django tests (and prepare for v2 + v3 support)
2020-02-17 16:39:01 +01:00
Taus
03ae7831ad
Merge pull request #2711 from RasmusWL/python-fix-import-deprecated-module
...
Python: fix alerts for py/import-deprecated-module
2020-02-17 11:46:12 +01:00
Taus
df3ac49c28
Merge pull request #2700 from RasmusWL/python-taint-iterable-unpacking
...
Python: Handle iterable unpacking in taint tracking
2020-02-17 11:44:25 +01:00
Taus
990d1c1663
Merge pull request #2802 from RasmusWL/python-fix-fp-py/import-own-module
...
Python: Fix FP for py/import own module
2020-02-17 11:23:11 +01:00
Rebecca Valentine
6a04004d94
Adds test cases and qlref.
2020-02-13 14:49:01 -08:00
jack1142
e1644dd68b
Python: Handle __class_getitem__ in py/not-named-self ( #2825 )
...
Fixes #2824
2020-02-13 13:38:36 +01:00
Rebecca Valentine
acb3c524dd
Updates expected results.
2020-02-12 19:46:43 -08:00
Taus
895f2f74ab
Merge branch 'master' into python-clean-qltest-options
2020-02-12 13:44:41 +01:00
Taus
12113e947f
Merge pull request #2603 from RasmusWL/python-fix-http-source-sink
...
Python: Make web libs use HttpRequestTaintSource and HttpResponseTaintSink
2020-02-12 13:42:22 +01:00
Rasmus Wriedt Larsen
efedcd26d0
Python: Django tests need --lang=3
2020-02-11 13:16:52 +01:00
Rasmus Wriedt Larsen
1f762841ec
Python: In py/import-own-module handle from foo import *
2020-02-11 11:45:48 +01:00
Rasmus Wriedt Larsen
5cc2efef8e
Python: Fix FPs for py/import-own-module
...
Before I added `--max-import-depth=2`, there was a bit of trouble, where it
would alert on `from pkg_ok import foo2` -- since all the `pkg_ok.foo<n>`
modules were missing, I guess the analysis didn't make any assumptions on
whether `foo2` is a module or a regular attribute.
2020-02-11 11:45:48 +01:00
Rasmus Wriedt Larsen
f3f9e340d3
Python: Update tests for py/import-own-module
...
So I've been thinking a bit about import pkg_ok.foo1 after reading the Python
references for imports of submodules
https://docs.python.org/3/reference/import.html#submodules
> When a submodule is loaded using any mechanism (...) a binding is placed in the
parent module’s namespace to the submodule object. For example, if package spam
has a submodule foo, after importing spam.foo, spam will have an attribute foo
which is bound to the submodule.
That does at least explain what is going on here.
I feel that import pkg_ok.foo1 might be a very contrived example. In principle
it should be an alert, since the module pkg_ok ends up with an import of itself,
but my gut feeling is that in practice it's not a very important piece of code
to give alerts for. if we really care about giving these import related alerts,
we could probably add a new query for this pattern, as it's kind of surprising
that it works when you're just an ordinary python programmer.
2020-02-11 11:45:48 +01:00
Rasmus Wriedt Larsen
2bffbf0734
Python: Add testcases for py/import-own-module
...
You can try out:
python2 -c "import pkg_ok; print(pkg_ok.foo1); print(pkg_ok.foo2); print(pkg_ok.foo3); print(pkg_ok.foo4); print(pkg_ok.foo5); print(pkg_ok.Foo3); print(pkg_ok.Foo5); print(pkg_ok.pkg_ok)"
python3 -c "import pkg_ok; print(pkg_ok.foo1); print(pkg_ok.foo2); print(pkg_ok.foo3); print(pkg_ok.foo4); print(pkg_ok.foo5); print(pkg_ok.Foo3); print(pkg_ok.Foo5); print(pkg_ok.pkg_ok)"
2020-02-10 15:16:47 +01:00
Rasmus Wriedt Larsen
c0b7dcc019
Python: Remove ignored automatic_locations in qltest options files
2020-02-06 14:28:10 +01:00