From 5baae31c1fd54e73dc0ed47e3372bdaea37a27ee Mon Sep 17 00:00:00 2001 From: Kay0u Date: Fri, 29 Dec 2023 00:48:47 +0100 Subject: [PATCH] nginx check regex in location field --- package_linter.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/package_linter.py b/package_linter.py index 26f86bd..e077a6e 100755 --- a/package_linter.py +++ b/package_linter.py @@ -1422,6 +1422,27 @@ class Configurations(TestSuite): 'more_set_headers "Header-Name: value"' ) + @test() + def misc_nginx_check_regex_in_location(self): + app = self.app + for filename in ( + os.listdir(app.path + "/conf") if os.path.exists(app.path + "/conf") else [] + ): + # Ignore subdirs or filename not containing nginx in the name + if ( + not os.path.isfile(app.path + "/conf/" + filename) + or "nginx" not in filename + ): + continue + + cmd = 'grep -q -IhEro "location ~ __PATH__\" %s' % filename + + if os.system(cmd) != 0: + yield Warning( + "When using regexp in the nignx location field (location ~ __PATH__), start the path with ^ (location ~ ^__PATH__)." + ) + + @test() def misc_nginx_path_traversal(self):