summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/default.ini74
-rw-r--r--config/examples.ini34
-rw-r--r--doc/source/config.rst14
-rw-r--r--src/sp_config.h2
-rw-r--r--src/tests/config/broken_conf_invalid_cidr.ini2
-rw-r--r--src/tests/config/broken_conf_invalid_cidr6.ini2
-rw-r--r--src/tests/config/broken_conf_invalid_cidr6_no_slash.ini2
-rw-r--r--src/tests/config/broken_conf_invalid_cidr6_too_big.ini2
-rw-r--r--src/tests/config/broken_conf_invalid_cidr_value.ini2
-rw-r--r--src/tests/config/broken_conf_invalid_type.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive2.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive3.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive4.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive5.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive6.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive7.ini2
-rw-r--r--src/tests/config/broken_conf_mutually_exclusive8.ini2
-rw-r--r--src/tests/config/broken_conf_wrong_type.ini10
-rw-r--r--src/tests/config/broken_config_regexp.ini2
-rw-r--r--src/tests/config/broken_config_regexp_no_closing_paren.ini2
-rw-r--r--src/tests/config/broken_regexp.ini2
-rw-r--r--src/tests/config/config_disabled_functions_chain.ini6
-rw-r--r--src/tests/config/config_disabled_functions_filename_r.ini4
-rw-r--r--src/tests/config/config_disabled_functions_method.ini6
-rw-r--r--src/tests/config/config_disabled_functions_name_r.ini4
-rw-r--r--src/tests/config/config_disabled_functions_name_type.ini2
-rw-r--r--src/tests/config/config_disabled_functions_namespace.ini4
-rw-r--r--src/tests/config/config_disabled_functions_nul_byte.ini2
-rw-r--r--src/tests/config/config_disabled_functions_param.ini12
-rw-r--r--src/tests/config/config_disabled_functions_param_alias.ini4
-rw-r--r--src/tests/config/config_disabled_functions_param_allow.ini6
-rw-r--r--src/tests/config/config_disabled_functions_param_array.ini8
-rw-r--r--src/tests/config/config_disabled_functions_param_int.ini4
-rw-r--r--src/tests/config/config_disabled_functions_param_r.ini2
-rw-r--r--src/tests/config/config_disabled_functions_param_runtime.ini2
-rw-r--r--src/tests/config/config_disabled_functions_param_str_representation.ini2
-rw-r--r--src/tests/config/config_disabled_functions_require.ini4
-rw-r--r--src/tests/config/config_disabled_functions_require_allow.ini2
-rw-r--r--src/tests/config/config_disabled_functions_ret_allow.ini4
-rw-r--r--src/tests/config/config_disabled_functions_ret_allow_value.ini2
-rw-r--r--src/tests/config/config_disabled_functions_ret_right_hash.ini8
-rw-r--r--src/tests/config/config_disabled_functions_ret_simulation.ini6
-rw-r--r--src/tests/config/config_disabled_functions_right_hash.ini6
-rw-r--r--src/tests/config/config_disabled_user_functions.ini2
-rw-r--r--src/tests/config/config_noncore_function_hooking.ini2
-rw-r--r--src/tests/config/disabled_function_local_var.ini4
-rw-r--r--src/tests/config/disabled_function_super_global_var.ini2
-rw-r--r--src/tests/config/disabled_functions.ini14
-rw-r--r--src/tests/config/disabled_functions_cidr.ini8
-rw-r--r--src/tests/config/disabled_functions_mb.ini4
-rw-r--r--src/tests/config/disabled_functions_ret.ini10
-rw-r--r--src/tests/config/disabled_functions_ret_type.ini2
-rw-r--r--src/tests/config/disabled_functions_ret_type_double.ini2
-rw-r--r--src/tests/config/disabled_functions_ret_type_long.ini2
-rw-r--r--src/tests/config/disabled_functions_ret_type_resource.ini2
-rw-r--r--src/tests/config/disabled_functions_ret_type_str.ini2
-rw-r--r--src/tests/config/disabled_functions_ret_type_true.ini2
-rw-r--r--src/tests/config/disabled_functions_retval.ini2
-rw-r--r--src/tests/config/disabled_functions_retval_rx.ini2
-rw-r--r--src/tests/config/disabled_functions_zero_cidr.ini2
-rw-r--r--src/tests/config/dump_request.ini2
-rw-r--r--src/tests/config/dump_request_invalid_folder.ini2
63 files changed, 168 insertions, 168 deletions
diff --git a/config/default.ini b/config/default.ini
index 0f67632..88398c1 100644
--- a/config/default.ini
+++ b/config/default.ini
@@ -1,54 +1,54 @@
1# Harden the `chmod` function 1# Harden the `chmod` function
2sp.disable_functions.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop(); 2sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
3sp.disable_functions.function("chmod").param("mode").value_r("o\\+w$").drop(); 3sp.disable_function.function("chmod").param("mode").value_r("o\\+w$").drop();
4 4
5# Prevent various `mail`-related vulnerabilities 5# Prevent various `mail`-related vulnerabilities
6sp.disable_functions.function("mail").param("additional_parameters").value_r("\\-").drop(); 6sp.disable_function.function("mail").param("additional_parameters").value_r("\\-").drop();
7 7
8##Prevent various `include`-related vulnerabilities 8##Prevent various `include`-related vulnerabilities
9sp.disable_functions.function_r("^(?:require|include)_once$").value_r("\\.(?:php|php7|inc|tpl)$").allow(); 9sp.disable_function.function_r("^(?:require|include)_once$").value_r("\\.(?:php|php7|inc|tpl)$").allow();
10sp.disable_functions.function_r("^require|include$").value_r("\\.(?:php|php7|inc|tpl)$").allow(); 10sp.disable_function.function_r("^require|include$").value_r("\\.(?:php|php7|inc|tpl)$").allow();
11sp.disable_functions.function_r("^(?:require|include)_once$").drop(); 11sp.disable_function.function_r("^(?:require|include)_once$").drop();
12sp.disable_functions.function_r("^require|include$").drop(); 12sp.disable_function.function_r("^require|include$").drop();
13 13
14# Prevent `system`-related injections 14# Prevent `system`-related injections
15sp.disable_functions.function("system").param("command").value_r("[$|;&`\\n]").drop(); 15sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
16sp.disable_functions.function("shell_exec").param("command").value_r("[$|;&`\\n]").drop(); 16sp.disable_function.function("shell_exec").param("command").value_r("[$|;&`\\n]").drop();
17sp.disable_functions.function("exec").param("command").value_r("[$|;&`\\n]").drop(); 17sp.disable_function.function("exec").param("command").value_r("[$|;&`\\n]").drop();
18sp.disable_functions.function("proc_open").param("command").value_r("[$|;&`\\n]").drop(); 18sp.disable_function.function("proc_open").param("command").value_r("[$|;&`\\n]").drop();
19 19
20# Prevent runtime modification of interesting things 20# Prevent runtime modification of interesting things
21sp.disable_functions.function("ini_set").param("var_name").value("assert.active").drop(); 21sp.disable_function.function("ini_set").param("var_name").value("assert.active").drop();
22sp.disable_functions.function("ini_set").param("var_name").value("zend.assertions").drop(); 22sp.disable_function.function("ini_set").param("var_name").value("zend.assertions").drop();
23sp.disable_functions.function("ini_set").param("var_name").value("memory_limit").drop(); 23sp.disable_function.function("ini_set").param("var_name").value("memory_limit").drop();
24sp.disable_functions.function("ini_set").param("var_name").value("include_path").drop(); 24sp.disable_function.function("ini_set").param("var_name").value("include_path").drop();
25sp.disable_functions.function("ini_set").param("var_name").value("open_basedir").drop(); 25sp.disable_function.function("ini_set").param("var_name").value("open_basedir").drop();
26 26
27# Detect some backdoors via environnement recon 27# Detect some backdoors via environnement recon
28sp.disable_functions.function("ini_get").param("var_name").value_r("(?:allow_url_fopen|open_basedir|suhosin)").drop(); 28sp.disable_function.function("ini_get").param("var_name").value_r("(?:allow_url_fopen|open_basedir|suhosin)").drop();
29sp.disable_functions.function("function_exists").param("function_name").value_r("(?:eval|exec|system)").drop(); 29sp.disable_function.function("function_exists").param("function_name").value_r("(?:eval|exec|system)").drop();
30sp.disable_functions.function("is_callable").param("var").value_r("(?:eval|exec|system)").drop(); 30sp.disable_function.function("is_callable").param("var").value_r("(?:eval|exec|system)").drop();
31 31
32# Ghetto sqli hardening 32# Ghetto sqli hardening
33sp.disable_functions.function_r("mysqli?_query").param("query").value_r("/\\*").drop(); 33sp.disable_function.function_r("mysqli?_query").param("query").value_r("/\\*").drop();
34sp.disable_functions.function_r("mysqli?_query").param("query").value_r("--").drop(); 34sp.disable_function.function_r("mysqli?_query").param("query").value_r("--").drop();
35sp.disable_functions.function_r("mysqli?_query").param("query").value_r("#").drop(); 35sp.disable_function.function_r("mysqli?_query").param("query").value_r("#").drop();
36sp.disable_functions.function_r("mysqli?_query").param("query").value_r(";.*;").drop(); 36sp.disable_function.function_r("mysqli?_query").param("query").value_r(";.*;").drop();
37sp.disable_functions.function_r("mysqli?_query").param("query").value_r("benchmark").drop(); 37sp.disable_function.function_r("mysqli?_query").param("query").value_r("benchmark").drop();
38sp.disable_functions.function_r("mysqli?_query").param("query").value_r("sleep").drop(); 38sp.disable_function.function_r("mysqli?_query").param("query").value_r("sleep").drop();
39sp.disable_functions.function_r("mysqli?_query").param("query").value_r("information_schema").drop(); 39sp.disable_function.function_r("mysqli?_query").param("query").value_r("information_schema").drop();
40sp.disable_functions.function("PDO::query").param("query").value_r("/\\*").drop(); 40sp.disable_function.function("PDO::query").param("query").value_r("/\\*").drop();
41sp.disable_functions.function("PDO::query").param("query").value_r("--").drop(); 41sp.disable_function.function("PDO::query").param("query").value_r("--").drop();
42sp.disable_functions.function("PDO::query").param("query").value_r("#").drop(); 42sp.disable_function.function("PDO::query").param("query").value_r("#").drop();
43sp.disable_functions.function("PDO::query").param("query").value_r(";.*;").drop(); 43sp.disable_function.function("PDO::query").param("query").value_r(";.*;").drop();
44sp.disable_functions.function("PDO::query").param("query").value_r("benchmark\\s*\\(").drop(); 44sp.disable_function.function("PDO::query").param("query").value_r("benchmark\\s*\\(").drop();
45sp.disable_functions.function("PDO::query").param("query").value_r("sleep\\s*\\(").drop(); 45sp.disable_function.function("PDO::query").param("query").value_r("sleep\\s*\\(").drop();
46sp.disable_functions.function("PDO::query").param("query").value_r("information_schema").drop(); 46sp.disable_function.function("PDO::query").param("query").value_r("information_schema").drop();
47 47
48# Ghetto sqli detection 48# Ghetto sqli detection
49sp.disable_functions.function_r("mysqli?_query").ret("FALSE").drop(); 49sp.disable_function.function_r("mysqli?_query").ret("FALSE").drop();
50sp.disable_functions.function_r("PDO::query").ret("FALSE").drop(); 50sp.disable_function.function_r("PDO::query").ret("FALSE").drop();
51 51
52#File upload 52#File upload
53sp.disable_functions.function("move_uploaded_file").param("destination").value_r("\\.ph").drop(); 53sp.disable_function.function("move_uploaded_file").param("destination").value_r("\\.ph").drop();
54sp.disable_functions.function("move_uploaded_file").param("destination").value_r("\\.ht").drop(); 54sp.disable_function.function("move_uploaded_file").param("destination").value_r("\\.ht").drop();
diff --git a/config/examples.ini b/config/examples.ini
index d7599fb..c522f1a 100644
--- a/config/examples.ini
+++ b/config/examples.ini
@@ -1,47 +1,47 @@
1# Restrict system calls to specific file 1# Restrict system calls to specific file
2sp.disable_functions.function("system").filename("update.php").allow(); 2sp.disable_function.function("system").filename("update.php").allow();
3sp.disable_functions.function("system").drop(); 3sp.disable_function.function("system").drop();
4 4
5 5
6# Restrict system calls to specific file with a specific hash 6# Restrict system calls to specific file with a specific hash
7sp.disable_functions.function("system").filename("update.php").hash("d27c6c5686bc129716b6aac8dfefe2d519a80eb6cc144e97ad42c728d423eed0").allow(); 7sp.disable_function.function("system").filename("update.php").hash("d27c6c5686bc129716b6aac8dfefe2d519a80eb6cc144e97ad42c728d423eed0").allow();
8sp.disable_functions.function("system").drop(); 8sp.disable_function.function("system").drop();
9 9
10 10
11# AbanteCart 1.2.8 - Multiple SQL Injections <https://blog.ripstech.com/2016/abantecart-multiple-sql-injections> 11# AbanteCart 1.2.8 - Multiple SQL Injections <https://blog.ripstech.com/2016/abantecart-multiple-sql-injections>
12sp.disable_functions.filename("static_pages/index.php").var("_SERVER[PHP_SELF").value_r("\"").drop().alias("XSS"); 12sp.disable_function.filename("static_pages/index.php").var("_SERVER[PHP_SELF").value_r("\"").drop().alias("XSS");
13sp.disable_functions.filename("core/lib/language_manager.php").function("ALanguageManager>_clone_language_rows").param("from_language").value_r("[^0-9]").drop(); 13sp.disable_function.filename("core/lib/language_manager.php").function("ALanguageManager>_clone_language_rows").param("from_language").value_r("[^0-9]").drop();
14sp.disable_functions.filename("admin/model/tool/backup.php").function("ModelToolBackup>createBackupTask").param("data[table_list]").value_r("'").drop(); 14sp.disable_function.filename("admin/model/tool/backup.php").function("ModelToolBackup>createBackupTask").param("data[table_list]").value_r("'").drop();
15 15
16 16
17# Redaxo 5.2.0: Remote Code Execution via CSRF <https://blog.ripstech.com/2016/redaxo-remote-code-execution-via-csrf> 17# Redaxo 5.2.0: Remote Code Execution via CSRF <https://blog.ripstech.com/2016/redaxo-remote-code-execution-via-csrf>
18# See <http://code.vtiger.com/vtiger/vtigercrm/commit/9b5c5338f80237ae072a06e1ba4a5cfcbfe063b0> for details 18# See <http://code.vtiger.com/vtiger/vtigercrm/commit/9b5c5338f80237ae072a06e1ba4a5cfcbfe063b0> for details
19sp.disable_functions.filename("redaxo/src/addons/structure/pages/linkmap.php").function("substr").param("string").value_r("\"").drop(); 19sp.disable_function.filename("redaxo/src/addons/structure/pages/linkmap.php").function("substr").param("string").value_r("\"").drop();
20 20
21 21
22# Guest Post: Vtiger 6.5.0 - SQL Injection <https://blog.ripstech.com/2016/vtiger-sql-injection/> 22# Guest Post: Vtiger 6.5.0 - SQL Injection <https://blog.ripstech.com/2016/vtiger-sql-injection/>
23sp.disable_functions.filename("modules/Calendar/Activity.php").function("save_module").param("query").value_r("[^0-9;]").drop(); 23sp.disable_function.filename("modules/Calendar/Activity.php").function("save_module").param("query").value_r("[^0-9;]").drop();
24 24
25 25
26# The State of Wordpress Security <https://blog.ripstech.com/2016/the-state-of-wordpress-security> 26# The State of Wordpress Security <https://blog.ripstech.com/2016/the-state-of-wordpress-security>
27# All In One WP Security & Firewall 27# All In One WP Security & Firewall
28sp.disable_functions.filename("admin/wp-security-dashboard-menu.php").function("render_tab3").var("_REQUEST[tab]]").value_r("\"").drop(); 28sp.disable_function.filename("admin/wp-security-dashboard-menu.php").function("render_tab3").var("_REQUEST[tab]]").value_r("\"").drop();
29 29
30 30
31# PHPKit 1.6.6: Code Execution for Privileged Users <https://blog.ripstech.com/2016/phpkit-code-exection-for-privileged-users> 31# PHPKit 1.6.6: Code Execution for Privileged Users <https://blog.ripstech.com/2016/phpkit-code-exection-for-privileged-users>
32sp.disable_functions.filename("pkinc/func/default.php").function("move_uploaded_file").param("destination").value_r("\\.ph\\.+$").drop(); 32sp.disable_function.filename("pkinc/func/default.php").function("move_uploaded_file").param("destination").value_r("\\.ph\\.+$").drop();
33 33
34 34
35# Coppermine 1.5.42: Second-Order Command Execution <https://blog.ripstech.com/2016/coppermine-second-order-command-execution> 35# Coppermine 1.5.42: Second-Order Command Execution <https://blog.ripstech.com/2016/coppermine-second-order-command-execution>
36sp.disable_functions.filename("include/imageobject_im.class.php").function("exec").var("CONFIG[im_options]).value_r("[^a-z0-9]").drop(); 36sp.disable_function.filename("include/imageobject_im.class.php").function("exec").var("CONFIG[im_options]).value_r("[^a-z0-9]").drop();
37sp.disable_functions.filename("forgot_passwd.php").function("cpg_db_query").var("CLEAN[id]").value_r("[^a-z0-9]").drop(); 37sp.disable_function.filename("forgot_passwd.php").function("cpg_db_query").var("CLEAN[id]").value_r("[^a-z0-9]").drop();
38 38
39 39
40# CVE-2014-1610 - Mediawiki RCE 40# CVE-2014-1610 - Mediawiki RCE
41sp.disable_functions.filename("includes/media/DjVu.php") 41sp.disable_function.filename("includes/media/DjVu.php")
42sp.disable_functions.filename("includes/media/ImageHandler.php").var("_GET[page]").value_r("[^0-9]").drop() 42sp.disable_function.filename("includes/media/ImageHandler.php").var("_GET[page]").value_r("[^0-9]").drop()
43 43
44 44
45# CVE-2017-1001000 - https://blog.sucuri.net/2017/02/content-injection-vulnerability-wordpress-rest-api.html 45# CVE-2017-1001000 - https://blog.sucuri.net/2017/02/content-injection-vulnerability-wordpress-rest-api.html
46sp.disable_functions.filename("wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php").function("register_routes").var("_GET[id]").value_r("[^0-9]").drop(); 46sp.disable_function.filename("wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php").function("register_routes").var("_GET[id]").value_r("[^0-9]").drop();
47sp.disable_functions.filename("wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php").function("register_routes").var("_POST[id]").value_r("[^0-9]").drop(); \ No newline at end of file 47sp.disable_function.filename("wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php").function("register_routes").var("_POST[id]").value_r("[^0-9]").drop(); \ No newline at end of file
diff --git a/doc/source/config.rst b/doc/source/config.rst
index 95a76f5..b7fa803 100644
--- a/doc/source/config.rst
+++ b/doc/source/config.rst
@@ -12,7 +12,7 @@ Options are chainable by using dots (``.``) and string parameters
12Comments are prefixed either with ``#``, or ``;``. 12Comments are prefixed either with ``#``, or ``;``.
13 13
14Some rules apply in a specific ``function`` (context) on a specific ``variable`` 14Some rules apply in a specific ``function`` (context) on a specific ``variable``
15(data), like ``disable_functions``. Others can only be enabled/disabled, like 15(data), like ``disable_function``. Others can only be enabled/disabled, like
16``harden_random``. 16``harden_random``.
17 17
18 18
@@ -212,14 +212,14 @@ disable_xxe
212Virtual-patching 212Virtual-patching
213---------------- 213----------------
214 214
215Snuffleupagus provides virtual-patching via the ``disable_functions`` directive, allowing you to stop or control dangerous behaviours. 215Snuffleupagus provides virtual-patching via the ``disable_function`` directive, allowing you to stop or control dangerous behaviours.
216In the situation where you have a call to ``system()`` that lacks proper user-input validation, this could cause issues as it would lead to an **RCE**. The virtual-patching would allow this to be prevented. 216In the situation where you have a call to ``system()`` that lacks proper user-input validation, this could cause issues as it would lead to an **RCE**. The virtual-patching would allow this to be prevented.
217 217
218:: 218::
219 219
220 # Allow `id.php` to restrict system() calls to `id` 220 # Allow `id.php` to restrict system() calls to `id`
221 sp.disable_functions.function("system").filename("id.php").param("cmd").value("id").allow(); 221 sp.disable_function.function("system").filename("id.php").param("cmd").value("id").allow();
222 sp.disable_functions.function("system").filename("id.php").drop() 222 sp.disable_function.function("system").filename("id.php").drop()
223 223
224Of course, this is a trivial example, a lot can be achieved with this feature, as you will see below. 224Of course, this is a trivial example, a lot can be achieved with this feature, as you will see below.
225 225
@@ -309,9 +309,9 @@ The following rules will:
309 309
310:: 310::
311 311
312 sp.disable_functions.function("system").param("cmd").value("id").allow(); 312 sp.disable_function.function("system").param("cmd").value("id").allow();
313 sp.disable_functions.function("system").param("cmd").value_r("^ping").drop().simulation(); 313 sp.disable_function.function("system").param("cmd").value_r("^ping").drop().simulation();
314 sp.disable_functions.function("system").param("cmd").drop(); 314 sp.disable_function.function("system").param("cmd").drop();
315 315
316Miscellaneous examples 316Miscellaneous examples
317"""""""""""""""""""""" 317""""""""""""""""""""""
diff --git a/src/sp_config.h b/src/sp_config.h
index e51d6cc..cad4234 100644
--- a/src/sp_config.h
+++ b/src/sp_config.h
@@ -145,7 +145,7 @@ typedef struct {
145 145
146#define SP_TOKEN_AUTO_COOKIE_SECURE ".auto_cookie_secure" 146#define SP_TOKEN_AUTO_COOKIE_SECURE ".auto_cookie_secure"
147#define SP_TOKEN_COOKIE_ENCRYPTION ".cookie_encryption" 147#define SP_TOKEN_COOKIE_ENCRYPTION ".cookie_encryption"
148#define SP_TOKEN_DISABLE_FUNC ".disable_functions" 148#define SP_TOKEN_DISABLE_FUNC ".disable_function"
149#define SP_TOKEN_GLOBAL ".global" 149#define SP_TOKEN_GLOBAL ".global"
150#define SP_TOKEN_GLOBAL_STRICT ".global_strict" 150#define SP_TOKEN_GLOBAL_STRICT ".global_strict"
151#define SP_TOKEN_HARDEN_RANDOM ".harden_random" 151#define SP_TOKEN_HARDEN_RANDOM ".harden_random"
diff --git a/src/tests/config/broken_conf_invalid_cidr.ini b/src/tests/config/broken_conf_invalid_cidr.ini
index 0cdc695..b1929c1 100644
--- a/src/tests/config/broken_conf_invalid_cidr.ini
+++ b/src/tests/config/broken_conf_invalid_cidr.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().cidr("127.0.0.1/42"); sp.disable_function.function("system").drop().cidr("127.0.0.1/42");
diff --git a/src/tests/config/broken_conf_invalid_cidr6.ini b/src/tests/config/broken_conf_invalid_cidr6.ini
index e5a120c..5e91faf 100644
--- a/src/tests/config/broken_conf_invalid_cidr6.ini
+++ b/src/tests/config/broken_conf_invalid_cidr6.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/ZZZ"); sp.disable_function.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/ZZZ");
diff --git a/src/tests/config/broken_conf_invalid_cidr6_no_slash.ini b/src/tests/config/broken_conf_invalid_cidr6_no_slash.ini
index e4cf835..067209f 100644
--- a/src/tests/config/broken_conf_invalid_cidr6_no_slash.ini
+++ b/src/tests/config/broken_conf_invalid_cidr6_no_slash.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329"); sp.disable_function.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329");
diff --git a/src/tests/config/broken_conf_invalid_cidr6_too_big.ini b/src/tests/config/broken_conf_invalid_cidr6_too_big.ini
index 417dee7..f82b18b 100644
--- a/src/tests/config/broken_conf_invalid_cidr6_too_big.ini
+++ b/src/tests/config/broken_conf_invalid_cidr6_too_big.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/13337"); sp.disable_function.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/13337");
diff --git a/src/tests/config/broken_conf_invalid_cidr_value.ini b/src/tests/config/broken_conf_invalid_cidr_value.ini
index 733e889..06a56bd 100644
--- a/src/tests/config/broken_conf_invalid_cidr_value.ini
+++ b/src/tests/config/broken_conf_invalid_cidr_value.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().cidr(" sp.disable_function.function("system").drop().cidr("
diff --git a/src/tests/config/broken_conf_invalid_type.ini b/src/tests/config/broken_conf_invalid_type.ini
index b2cd8cd..c52994e 100644
--- a/src/tests/config/broken_conf_invalid_type.ini
+++ b/src/tests/config/broken_conf_invalid_type.ini
@@ -1 +1 @@
sp.disable_functions.function("strpos").ret_type("totally_wrong"_type") sp.disable_function.function("strpos").ret_type("totally_wrong"_type")
diff --git a/src/tests/config/broken_conf_mutually_exclusive.ini b/src/tests/config/broken_conf_mutually_exclusive.ini
index af1d505..7ea483f 100644
--- a/src/tests/config/broken_conf_mutually_exclusive.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive.ini
@@ -1 +1 @@
sp.disable_functions.function("system").param("id").value("42").value_r("^id$").drop(); sp.disable_function.function("system").param("id").value("42").value_r("^id$").drop();
diff --git a/src/tests/config/broken_conf_mutually_exclusive2.ini b/src/tests/config/broken_conf_mutually_exclusive2.ini
index 29b21d4..3ff3ca7 100644
--- a/src/tests/config/broken_conf_mutually_exclusive2.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive2.ini
@@ -1 +1 @@
sp.disable_functions.function("system").function_r("system").param("id").value("42").drop(); sp.disable_function.function("system").function_r("system").param("id").value("42").drop();
diff --git a/src/tests/config/broken_conf_mutually_exclusive3.ini b/src/tests/config/broken_conf_mutually_exclusive3.ini
index 556de08..f4f7604 100644
--- a/src/tests/config/broken_conf_mutually_exclusive3.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive3.ini
@@ -1 +1 @@
sp.disable_functions.function("system").param("id").value("42").filename_r("^id$").filename("pouet.txt").drop(); sp.disable_function.function("system").param("id").value("42").filename_r("^id$").filename("pouet.txt").drop();
diff --git a/src/tests/config/broken_conf_mutually_exclusive4.ini b/src/tests/config/broken_conf_mutually_exclusive4.ini
index d212ad4..c38a727 100644
--- a/src/tests/config/broken_conf_mutually_exclusive4.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive4.ini
@@ -1 +1 @@
sp.disable_functions.function("system").param("id").value("42").param_r("^id$").drop(); sp.disable_function.function("system").param("id").value("42").param_r("^id$").drop();
diff --git a/src/tests/config/broken_conf_mutually_exclusive5.ini b/src/tests/config/broken_conf_mutually_exclusive5.ini
index 5b64079..254b2a3 100644
--- a/src/tests/config/broken_conf_mutually_exclusive5.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive5.ini
@@ -1 +1 @@
sp.disable_functions.function("system").ret("0").drop().ret_r("^0$"); sp.disable_function.function("system").ret("0").drop().ret_r("^0$");
diff --git a/src/tests/config/broken_conf_mutually_exclusive6.ini b/src/tests/config/broken_conf_mutually_exclusive6.ini
index d08ee58..7c6712c 100644
--- a/src/tests/config/broken_conf_mutually_exclusive6.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive6.ini
@@ -1 +1 @@
sp.disable_functions.function("system").param("id").value("42").ret_r("^0$").drop(); sp.disable_function.function("system").param("id").value("42").ret_r("^0$").drop();
diff --git a/src/tests/config/broken_conf_mutually_exclusive7.ini b/src/tests/config/broken_conf_mutually_exclusive7.ini
index 645c26c..feb3486 100644
--- a/src/tests/config/broken_conf_mutually_exclusive7.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive7.ini
@@ -1 +1 @@
sp.disable_functions.function("system").ret("0").drop().allow(); sp.disable_function.function("system").ret("0").drop().allow();
diff --git a/src/tests/config/broken_conf_mutually_exclusive8.ini b/src/tests/config/broken_conf_mutually_exclusive8.ini
index b08ef57..c9c9ea2 100644
--- a/src/tests/config/broken_conf_mutually_exclusive8.ini
+++ b/src/tests/config/broken_conf_mutually_exclusive8.ini
@@ -1 +1 @@
sp.disable_functions.ret("0").drop(); sp.disable_function.ret("0").drop();
diff --git a/src/tests/config/broken_conf_wrong_type.ini b/src/tests/config/broken_conf_wrong_type.ini
index 6ecca6a..b2943db 100644
--- a/src/tests/config/broken_conf_wrong_type.ini
+++ b/src/tests/config/broken_conf_wrong_type.ini
@@ -1,5 +1,5 @@
1sp.disable_functions.function("strpos").ret_type("undef").drop().alias("Return value is undef"); 1sp.disable_function.function("strpos").ret_type("undef").drop().alias("Return value is undef");
2sp.disable_functions.function("strpos").ret_type("null").drop().alias("Return value is null"); 2sp.disable_function.function("strpos").ret_type("null").drop().alias("Return value is null");
3sp.disable_functions.function("strpos").ret_type("object").drop().alias("Return value is object"); 3sp.disable_function.function("strpos").ret_type("object").drop().alias("Return value is object");
4sp.disable_functions.function("strpos").ret_type("reference").drop().alias("Return value is reference"); 4sp.disable_function.function("strpos").ret_type("reference").drop().alias("Return value is reference");
5sp.disable_functions.function("strpos").ret_type("totally_wrong_type").drop().alias("Return value is FALSE"); 5sp.disable_function.function("strpos").ret_type("totally_wrong_type").drop().alias("Return value is FALSE");
diff --git a/src/tests/config/broken_config_regexp.ini b/src/tests/config/broken_config_regexp.ini
index efad83e..62bed11 100644
--- a/src/tests/config/broken_config_regexp.ini
+++ b/src/tests/config/broken_config_regexp.ini
@@ -1 +1 @@
sp.disable_functions.function_r("^system$").filename_r("*.").drop(); sp.disable_function.function_r("^system$").filename_r("*.").drop();
diff --git a/src/tests/config/broken_config_regexp_no_closing_paren.ini b/src/tests/config/broken_config_regexp_no_closing_paren.ini
index ae7094f..93e150b 100644
--- a/src/tests/config/broken_config_regexp_no_closing_paren.ini
+++ b/src/tests/config/broken_config_regexp_no_closing_paren.ini
@@ -1 +1 @@
sp.disable_functions.function_r("^system$").drop().filename_r("*." sp.disable_function.function_r("^system$").drop().filename_r("*."
diff --git a/src/tests/config/broken_regexp.ini b/src/tests/config/broken_regexp.ini
index 8e1f69a..8e4bf69 100644
--- a/src/tests/config/broken_regexp.ini
+++ b/src/tests/config/broken_regexp.ini
@@ -1 +1 @@
sp.disable_functions.function("AwesomeClass::method3").param("a").drop().value_r("^$["); sp.disable_function.function("AwesomeClass::method3").param("a").drop().value_r("^$[");
diff --git a/src/tests/config/config_disabled_functions_chain.ini b/src/tests/config/config_disabled_functions_chain.ini
index 5eacbc3..d5d9b62 100644
--- a/src/tests/config/config_disabled_functions_chain.ini
+++ b/src/tests/config/config_disabled_functions_chain.ini
@@ -1,3 +1,3 @@
1sp.disable_functions.function("outer>inner>other").drop(); 1sp.disable_function.function("outer>inner>other").drop();
2sp.disable_functions.function("other>outer>inner_").drop(); 2sp.disable_function.function("other>outer>inner_").drop();
3sp.disable_functions.function("outer>inner").drop(); 3sp.disable_function.function("outer>inner").drop();
diff --git a/src/tests/config/config_disabled_functions_filename_r.ini b/src/tests/config/config_disabled_functions_filename_r.ini
index b92f136..fe79608 100644
--- a/src/tests/config/config_disabled_functions_filename_r.ini
+++ b/src/tests/config/config_disabled_functions_filename_r.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function_r("^system$").filename_r("\\.txt$").drop(); 1sp.disable_function.function_r("^system$").filename_r("\\.txt$").drop();
2sp.disable_functions.function_r("^shell_exec$").filename_r("\\.php$").drop(); 2sp.disable_function.function_r("^shell_exec$").filename_r("\\.php$").drop();
diff --git a/src/tests/config/config_disabled_functions_method.ini b/src/tests/config/config_disabled_functions_method.ini
index 4d088d2..8fbce65 100644
--- a/src/tests/config/config_disabled_functions_method.ini
+++ b/src/tests/config/config_disabled_functions_method.ini
@@ -1,3 +1,3 @@
1sp.disable_functions.function("AwesomeClass::method1").drop(); 1sp.disable_function.function("AwesomeClass::method1").drop();
2sp.disable_functions.function("method2").drop(); 2sp.disable_function.function("method2").drop();
3sp.disable_functions.function("AwesomeClass::method3").param("a").value("pouet").drop(); 3sp.disable_function.function("AwesomeClass::method3").param("a").value("pouet").drop();
diff --git a/src/tests/config/config_disabled_functions_name_r.ini b/src/tests/config/config_disabled_functions_name_r.ini
index 3f7178e..167d6f0 100644
--- a/src/tests/config/config_disabled_functions_name_r.ini
+++ b/src/tests/config/config_disabled_functions_name_r.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function_r("^not_system$").ret("42").drop(); 1sp.disable_function.function_r("^not_system$").ret("42").drop();
2sp.disable_functions.function_r("^system$").ret("1337").drop(); 2sp.disable_function.function_r("^system$").ret("1337").drop();
diff --git a/src/tests/config/config_disabled_functions_name_type.ini b/src/tests/config/config_disabled_functions_name_type.ini
index 2b433df..25bdf98 100644
--- a/src/tests/config/config_disabled_functions_name_type.ini
+++ b/src/tests/config/config_disabled_functions_name_type.ini
@@ -1 +1 @@
sp.disable_functions.function_r("^strcmp$").param("str1").param_type("array").drop(); sp.disable_function.function_r("^strcmp$").param("str1").param_type("array").drop();
diff --git a/src/tests/config/config_disabled_functions_namespace.ini b/src/tests/config/config_disabled_functions_namespace.ini
index 78c7f92..2926611 100644
--- a/src/tests/config/config_disabled_functions_namespace.ini
+++ b/src/tests/config/config_disabled_functions_namespace.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("strcmp").drop(); 1sp.disable_function.function("strcmp").drop();
2sp.disable_functions.function("my_super_namespace\\my_function").drop(); 2sp.disable_function.function("my_super_namespace\\my_function").drop();
diff --git a/src/tests/config/config_disabled_functions_nul_byte.ini b/src/tests/config/config_disabled_functions_nul_byte.ini
index 7994583..d5eb847 100644
--- a/src/tests/config/config_disabled_functions_nul_byte.ini
+++ b/src/tests/config/config_disabled_functions_nul_byte.ini
@@ -1 +1 @@
sp.disable_functions.function("system").param("command").value_r("id").drop(); \ No newline at end of file sp.disable_function.function("system").param("command").value_r("id").drop(); \ No newline at end of file
diff --git a/src/tests/config/config_disabled_functions_param.ini b/src/tests/config/config_disabled_functions_param.ini
index 7363781..87f1b3c 100644
--- a/src/tests/config/config_disabled_functions_param.ini
+++ b/src/tests/config/config_disabled_functions_param.ini
@@ -1,6 +1,6 @@
1sp.disable_functions.function("system").param("command").value_r("^id$").alias("1").drop(); 1sp.disable_function.function("system").param("command").value_r("^id$").alias("1").drop();
2sp.disable_functions.function("array_sum").param("array").value_r("^8$").alias("2").drop(); 2sp.disable_function.function("array_sum").param("array").value_r("^8$").alias("2").drop();
3sp.disable_functions.function("shell_exec").param("cmd").value("id").alias("3").drop(); 3sp.disable_function.function("shell_exec").param("cmd").value("id").alias("3").drop();
4sp.disable_functions.function("shell_exec").param("cmd").value("bla").alias("4").drop(); 4sp.disable_function.function("shell_exec").param("cmd").value("bla").alias("4").drop();
5sp.disable_functions.function("strcmp").param("str1").value("bla").alias("5").drop().simulation(); 5sp.disable_function.function("strcmp").param("str1").value("bla").alias("5").drop().simulation();
6sp.disable_functions.function("strncmp").param("str1").value("bla").drop().simulation(); 6sp.disable_function.function("strncmp").param("str1").value("bla").drop().simulation();
diff --git a/src/tests/config/config_disabled_functions_param_alias.ini b/src/tests/config/config_disabled_functions_param_alias.ini
index f8d9f43..2f06244 100644
--- a/src/tests/config/config_disabled_functions_param_alias.ini
+++ b/src/tests/config/config_disabled_functions_param_alias.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("system").alias("1").drop(); 1sp.disable_function.function("system").alias("1").drop();
2sp.disable_functions.function("shell_exec").alias("2").drop().simulation(); 2sp.disable_function.function("shell_exec").alias("2").drop().simulation();
diff --git a/src/tests/config/config_disabled_functions_param_allow.ini b/src/tests/config/config_disabled_functions_param_allow.ini
index e349b38..aa86f52 100644
--- a/src/tests/config/config_disabled_functions_param_allow.ini
+++ b/src/tests/config/config_disabled_functions_param_allow.ini
@@ -1,3 +1,3 @@
1sp.disable_functions.function("system").param("command").value("echo win").filename("test.php").drop(); 1sp.disable_function.function("system").param("command").value("echo win").filename("test.php").drop();
2sp.disable_functions.function("system").param("command").value("echo win").allow(); 2sp.disable_function.function("system").param("command").value("echo win").allow();
3sp.disable_functions.function("system").drop(); 3sp.disable_function.function("system").drop();
diff --git a/src/tests/config/config_disabled_functions_param_array.ini b/src/tests/config/config_disabled_functions_param_array.ini
index 7b71692..0589ad8 100644
--- a/src/tests/config/config_disabled_functions_param_array.ini
+++ b/src/tests/config/config_disabled_functions_param_array.ini
@@ -1,4 +1,4 @@
1sp.disable_functions.function("foo").param("arr").value("abcd").alias("1").drop(); 1sp.disable_function.function("foo").param("arr").value("abcd").alias("1").drop();
2sp.disable_functions.function("foo").param("arr[bla]").value("abcdef").alias("2").drop(); 2sp.disable_function.function("foo").param("arr[bla]").value("abcdef").alias("2").drop();
3sp.disable_functions.function("foo").param("arr[test]").alias("3").drop(); 3sp.disable_function.function("foo").param("arr[test]").alias("3").drop();
4sp.disable_functions.function("foo").param("arr[test2][foo][lol]").value("aaa").alias("4").drop(); 4sp.disable_function.function("foo").param("arr[test2][foo][lol]").value("aaa").alias("4").drop();
diff --git a/src/tests/config/config_disabled_functions_param_int.ini b/src/tests/config/config_disabled_functions_param_int.ini
index 2552f0a..1c93c2f 100644
--- a/src/tests/config/config_disabled_functions_param_int.ini
+++ b/src/tests/config/config_disabled_functions_param_int.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("foobar").param("id").value("42").drop(); 1sp.disable_function.function("foobar").param("id").value("42").drop();
2sp.disable_functions.function("foobar").param("id").value_r("^1337").drop(); 2sp.disable_function.function("foobar").param("id").value_r("^1337").drop();
diff --git a/src/tests/config/config_disabled_functions_param_r.ini b/src/tests/config/config_disabled_functions_param_r.ini
index d9f6692..8e9ac63 100644
--- a/src/tests/config/config_disabled_functions_param_r.ini
+++ b/src/tests/config/config_disabled_functions_param_r.ini
@@ -1 +1 @@
sp.disable_functions.function("system").param_r("^command$").value("id").drop(); sp.disable_function.function("system").param_r("^command$").value("id").drop();
diff --git a/src/tests/config/config_disabled_functions_param_runtime.ini b/src/tests/config/config_disabled_functions_param_runtime.ini
index 641bd0a..e7a011f 100644
--- a/src/tests/config/config_disabled_functions_param_runtime.ini
+++ b/src/tests/config/config_disabled_functions_param_runtime.ini
@@ -1 +1 @@
sp.disable_functions.function("test").param("param").value_r("1337").drop(); sp.disable_function.function("test").param("param").value_r("1337").drop();
diff --git a/src/tests/config/config_disabled_functions_param_str_representation.ini b/src/tests/config/config_disabled_functions_param_str_representation.ini
index 7171a30..13b3974 100644
--- a/src/tests/config/config_disabled_functions_param_str_representation.ini
+++ b/src/tests/config/config_disabled_functions_param_str_representation.ini
@@ -1 +1 @@
sp.disable_functions.function("var_export").param("var").value("bla").drop(); sp.disable_function.function("var_export").param("var").value("bla").drop();
diff --git a/src/tests/config/config_disabled_functions_require.ini b/src/tests/config/config_disabled_functions_require.ini
index c23824d..648670a 100644
--- a/src/tests/config/config_disabled_functions_require.ini
+++ b/src/tests/config/config_disabled_functions_require.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("require").param("").value_r("sim$").drop().simulation(); 1sp.disable_function.function("require").param("").value_r("sim$").drop().simulation();
2sp.disable_functions.function("require").param("").value_r("meh$").drop(); \ No newline at end of file 2sp.disable_function.function("require").param("").value_r("meh$").drop(); \ No newline at end of file
diff --git a/src/tests/config/config_disabled_functions_require_allow.ini b/src/tests/config/config_disabled_functions_require_allow.ini
index c533341..ee2bb67 100644
--- a/src/tests/config/config_disabled_functions_require_allow.ini
+++ b/src/tests/config/config_disabled_functions_require_allow.ini
@@ -1 +1 @@
sp.disable_functions.function("require").param("").value_r("meh$").allow(); sp.disable_function.function("require").param("").value_r("meh$").allow();
diff --git a/src/tests/config/config_disabled_functions_ret_allow.ini b/src/tests/config/config_disabled_functions_ret_allow.ini
index 1884227..a97e21d 100644
--- a/src/tests/config/config_disabled_functions_ret_allow.ini
+++ b/src/tests/config/config_disabled_functions_ret_allow.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("strpos").hash("70b33f3eaf585b245640bb2c92445d0040b2bcb31395aa25dede9f2df4dbcbe8").allow(); 1sp.disable_function.function("strpos").hash("70b33f3eaf585b245640bb2c92445d0040b2bcb31395aa25dede9f2df4dbcbe8").allow();
2sp.disable_functions.function("strpos").drop(); 2sp.disable_function.function("strpos").drop();
diff --git a/src/tests/config/config_disabled_functions_ret_allow_value.ini b/src/tests/config/config_disabled_functions_ret_allow_value.ini
index e179819..b5d3bdd 100644
--- a/src/tests/config/config_disabled_functions_ret_allow_value.ini
+++ b/src/tests/config/config_disabled_functions_ret_allow_value.ini
@@ -1 +1 @@
sp.disable_functions.function("strpos").ret("0").allow(); sp.disable_function.function("strpos").ret("0").allow();
diff --git a/src/tests/config/config_disabled_functions_ret_right_hash.ini b/src/tests/config/config_disabled_functions_ret_right_hash.ini
index 6f49177..8ec8f83 100644
--- a/src/tests/config/config_disabled_functions_ret_right_hash.ini
+++ b/src/tests/config/config_disabled_functions_ret_right_hash.ini
@@ -1,4 +1,4 @@
1sp.disable_functions.function("system").ret("1").drop(); 1sp.disable_function.function("system").ret("1").drop();
2sp.disable_functions.function("system").ret("1337").hash("123456789597a81a2b862cdb49920e2cba2e5979a3fc374c58c803e8f5c99a10").drop(); 2sp.disable_function.function("system").ret("1337").hash("123456789597a81a2b862cdb49920e2cba2e5979a3fc374c58c803e8f5c99a10").drop();
3sp.disable_functions.function("system").ret("1338").hash("522a976fa597a81a2b862cdb49920e2cba2e5979a3fc374c58c803e8f5c99a10").drop(); 3sp.disable_function.function("system").ret("1338").hash("522a976fa597a81a2b862cdb49920e2cba2e5979a3fc374c58c803e8f5c99a10").drop();
4sp.disable_functions.function("system").ret("1337").hash("522a976fa597a81a2b862cdb49920e2cba2e5979a3fc374c58c803e8f5c99a10").drop(); 4sp.disable_function.function("system").ret("1337").hash("522a976fa597a81a2b862cdb49920e2cba2e5979a3fc374c58c803e8f5c99a10").drop();
diff --git a/src/tests/config/config_disabled_functions_ret_simulation.ini b/src/tests/config/config_disabled_functions_ret_simulation.ini
index ee46c4b..bd0af4e 100644
--- a/src/tests/config/config_disabled_functions_ret_simulation.ini
+++ b/src/tests/config/config_disabled_functions_ret_simulation.ini
@@ -1,3 +1,3 @@
1sp.disable_functions.function("strpos").ret("0").simulation().drop(); 1sp.disable_function.function("strpos").ret("0").simulation().drop();
2sp.disable_functions.function("stripos").ret("0").simulation().drop().alias("1"); 2sp.disable_function.function("stripos").ret("0").simulation().drop().alias("1");
3sp.disable_functions.function("strcmp").ret("0").drop(); 3sp.disable_function.function("strcmp").ret("0").drop();
diff --git a/src/tests/config/config_disabled_functions_right_hash.ini b/src/tests/config/config_disabled_functions_right_hash.ini
index fab68fa..4e9b88c 100644
--- a/src/tests/config/config_disabled_functions_right_hash.ini
+++ b/src/tests/config/config_disabled_functions_right_hash.ini
@@ -1,3 +1,3 @@
1sp.disable_functions.function("system").hash("1337c3ad8cf096272cd0e78768af3b11325f498de5c2c36f40adc43643af378a").allow(); 1sp.disable_function.function("system").hash("1337c3ad8cf096272cd0e78768af3b11325f498de5c2c36f40adc43643af378a").allow();
2sp.disable_functions.function("system").hash("d259c3ad8cf096272cd0e78768af3b11325f498de5c2c36f40adc43643af378a").allow(); 2sp.disable_function.function("system").hash("d259c3ad8cf096272cd0e78768af3b11325f498de5c2c36f40adc43643af378a").allow();
3sp.disable_functions.function("system").drop(); \ No newline at end of file 3sp.disable_function.function("system").drop(); \ No newline at end of file
diff --git a/src/tests/config/config_disabled_user_functions.ini b/src/tests/config/config_disabled_user_functions.ini
index 15cbccc..16ae4cb 100644
--- a/src/tests/config/config_disabled_user_functions.ini
+++ b/src/tests/config/config_disabled_user_functions.ini
@@ -1 +1 @@
sp.disable_functions.function("my_super_function").drop(); sp.disable_function.function("my_super_function").drop();
diff --git a/src/tests/config/config_noncore_function_hooking.ini b/src/tests/config/config_noncore_function_hooking.ini
index 88f2acf..341cbf9 100644
--- a/src/tests/config/config_noncore_function_hooking.ini
+++ b/src/tests/config/config_noncore_function_hooking.ini
@@ -1 +1 @@
sp.disable_functions.function("custom_fun").drop(); sp.disable_function.function("custom_fun").drop();
diff --git a/src/tests/config/disabled_function_local_var.ini b/src/tests/config/disabled_function_local_var.ini
index 64d98dc..cba2ae3 100644
--- a/src/tests/config/disabled_function_local_var.ini
+++ b/src/tests/config/disabled_function_local_var.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("phpinfo").var("b").value("1337").drop(); 1sp.disable_function.function("phpinfo").var("b").value("1337").drop();
2sp.disable_functions.function("strlen").var("a").value("1337").drop(); 2sp.disable_function.function("strlen").var("a").value("1337").drop();
diff --git a/src/tests/config/disabled_function_super_global_var.ini b/src/tests/config/disabled_function_super_global_var.ini
index e0c87e1..feac314 100644
--- a/src/tests/config/disabled_function_super_global_var.ini
+++ b/src/tests/config/disabled_function_super_global_var.ini
@@ -1 +1 @@
sp.disable_functions.function("strlen").var("_GET[bla]").value("test2").drop(); sp.disable_function.function("strlen").var("_GET[bla]").value("test2").drop();
diff --git a/src/tests/config/disabled_functions.ini b/src/tests/config/disabled_functions.ini
index cf54164..e46781a 100644
--- a/src/tests/config/disabled_functions.ini
+++ b/src/tests/config/disabled_functions.ini
@@ -1,7 +1,7 @@
1sp.disable_functions.function("system").drop(); 1sp.disable_function.function("system").drop();
2sp.disable_functions.function("vprintf").hash("123456789").drop(); 2sp.disable_function.function("vprintf").hash("123456789").drop();
3sp.disable_functions.function("printf").disable().drop(); 3sp.disable_function.function("printf").disable().drop();
4sp.disable_functions.function("printf").simulation().drop(); 4sp.disable_function.function("printf").simulation().drop();
5sp.disable_functions.function("print").disable().drop(); # this is a comment 5sp.disable_function.function("print").disable().drop(); # this is a comment
6sp.disable_functions.function_r("^var_dump$").drop(); 6sp.disable_function.function_r("^var_dump$").drop();
7sp.disable_functions.function("sprintf").filename("wrong file name").drop(); 7sp.disable_function.function("sprintf").filename("wrong file name").drop();
diff --git a/src/tests/config/disabled_functions_cidr.ini b/src/tests/config/disabled_functions_cidr.ini
index 9e527ba..07f688f 100644
--- a/src/tests/config/disabled_functions_cidr.ini
+++ b/src/tests/config/disabled_functions_cidr.ini
@@ -1,4 +1,4 @@
1sp.disable_functions.function("system").drop().cidr("127.0.0.1/8"); 1sp.disable_function.function("system").drop().cidr("127.0.0.1/8");
2sp.disable_functions.function("printf").drop().cidr("10.0.0.1/8"); 2sp.disable_function.function("printf").drop().cidr("10.0.0.1/8");
3sp.disable_functions.function("strpos").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/24"); 3sp.disable_function.function("strpos").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/24");
4sp.disable_functions.function("printf").drop().cidr("2002:0db8:0000:0000:0000:ff00:0042:8329/24"); 4sp.disable_function.function("printf").drop().cidr("2002:0db8:0000:0000:0000:ff00:0042:8329/24");
diff --git a/src/tests/config/disabled_functions_mb.ini b/src/tests/config/disabled_functions_mb.ini
index b6afd97..36eae40 100644
--- a/src/tests/config/disabled_functions_mb.ini
+++ b/src/tests/config/disabled_functions_mb.ini
@@ -1,2 +1,2 @@
1sp.disable_functions.function("strlen").drop(); 1sp.disable_function.function("strlen").drop();
2sp.disable_functions.function("mb_strlen").drop(); 2sp.disable_function.function("mb_strlen").drop();
diff --git a/src/tests/config/disabled_functions_ret.ini b/src/tests/config/disabled_functions_ret.ini
index 2b769a9..4afcd34 100644
--- a/src/tests/config/disabled_functions_ret.ini
+++ b/src/tests/config/disabled_functions_ret.ini
@@ -1,5 +1,5 @@
1sp.disable_functions.function("testFunction").ret("0").drop().disable(); 1sp.disable_function.function("testFunction").ret("0").drop().disable();
2sp.disable_functions.function("strpos").ret("0").drop().filename_r(".*\\.php"); 2sp.disable_function.function("strpos").ret("0").drop().filename_r(".*\\.php");
3sp.disable_functions.function_r("str[ia]pos").ret_r("^[^a-z]+$").drop(); 3sp.disable_function.function_r("str[ia]pos").ret_r("^[^a-z]+$").drop();
4sp.disable_functions.function_r("stripos").ret_r("^[^a-z]+").drop(); 4sp.disable_function.function_r("stripos").ret_r("^[^a-z]+").drop();
5sp.disable_functions.function("Bob::a").ret("0").drop(); 5sp.disable_function.function("Bob::a").ret("0").drop();
diff --git a/src/tests/config/disabled_functions_ret_type.ini b/src/tests/config/disabled_functions_ret_type.ini
index 56c8e57..bf88402 100644
--- a/src/tests/config/disabled_functions_ret_type.ini
+++ b/src/tests/config/disabled_functions_ret_type.ini
@@ -1 +1 @@
sp.disable_functions.function("strpos").ret_type("false").drop().alias("Return value is FALSE"); sp.disable_function.function("strpos").ret_type("false").drop().alias("Return value is FALSE");
diff --git a/src/tests/config/disabled_functions_ret_type_double.ini b/src/tests/config/disabled_functions_ret_type_double.ini
index a1239d8..a5a6ce3 100644
--- a/src/tests/config/disabled_functions_ret_type_double.ini
+++ b/src/tests/config/disabled_functions_ret_type_double.ini
@@ -1 +1 @@
sp.disable_functions.function("cos").ret_type("double").drop().alias("Return value is a double"); sp.disable_function.function("cos").ret_type("double").drop().alias("Return value is a double");
diff --git a/src/tests/config/disabled_functions_ret_type_long.ini b/src/tests/config/disabled_functions_ret_type_long.ini
index 6cccd4d..03abf8a 100644
--- a/src/tests/config/disabled_functions_ret_type_long.ini
+++ b/src/tests/config/disabled_functions_ret_type_long.ini
@@ -1 +1 @@
sp.disable_functions.function("strlen").ret_type("long").drop().alias("Return value is a long"); sp.disable_function.function("strlen").ret_type("long").drop().alias("Return value is a long");
diff --git a/src/tests/config/disabled_functions_ret_type_resource.ini b/src/tests/config/disabled_functions_ret_type_resource.ini
index e81cf2c..a9c9acf 100644
--- a/src/tests/config/disabled_functions_ret_type_resource.ini
+++ b/src/tests/config/disabled_functions_ret_type_resource.ini
@@ -1 +1 @@
sp.disable_functions.function("fopen").ret_type("resource").drop().alias("Return value is a resource"); sp.disable_function.function("fopen").ret_type("resource").drop().alias("Return value is a resource");
diff --git a/src/tests/config/disabled_functions_ret_type_str.ini b/src/tests/config/disabled_functions_ret_type_str.ini
index b3ff050..2d306b0 100644
--- a/src/tests/config/disabled_functions_ret_type_str.ini
+++ b/src/tests/config/disabled_functions_ret_type_str.ini
@@ -1 +1 @@
sp.disable_functions.function("substr").ret_type("string").drop().alias("Return value is a string"); sp.disable_function.function("substr").ret_type("string").drop().alias("Return value is a string");
diff --git a/src/tests/config/disabled_functions_ret_type_true.ini b/src/tests/config/disabled_functions_ret_type_true.ini
index 02a37dd..df5db0e 100644
--- a/src/tests/config/disabled_functions_ret_type_true.ini
+++ b/src/tests/config/disabled_functions_ret_type_true.ini
@@ -1 +1 @@
sp.disable_functions.function("is_numeric").ret_type("true").drop().alias("Return value is a true"); sp.disable_function.function("is_numeric").ret_type("true").drop().alias("Return value is a true");
diff --git a/src/tests/config/disabled_functions_retval.ini b/src/tests/config/disabled_functions_retval.ini
index 20422e4..b54c0fa 100644
--- a/src/tests/config/disabled_functions_retval.ini
+++ b/src/tests/config/disabled_functions_retval.ini
@@ -1 +1 @@
sp.disable_functions.function("str_repeat").ret("fufufu").drop(); sp.disable_function.function("str_repeat").ret("fufufu").drop();
diff --git a/src/tests/config/disabled_functions_retval_rx.ini b/src/tests/config/disabled_functions_retval_rx.ini
index ca2bce3..2352941 100644
--- a/src/tests/config/disabled_functions_retval_rx.ini
+++ b/src/tests/config/disabled_functions_retval_rx.ini
@@ -1 +1 @@
sp.disable_functions.function("str_repeat").ret_r("(fu){3}").drop(); sp.disable_function.function("str_repeat").ret_r("(fu){3}").drop();
diff --git a/src/tests/config/disabled_functions_zero_cidr.ini b/src/tests/config/disabled_functions_zero_cidr.ini
index bba1af9..e0bf2d6 100644
--- a/src/tests/config/disabled_functions_zero_cidr.ini
+++ b/src/tests/config/disabled_functions_zero_cidr.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().cidr("0.0.0.0/0"); sp.disable_function.function("system").drop().cidr("0.0.0.0/0");
diff --git a/src/tests/config/dump_request.ini b/src/tests/config/dump_request.ini
index 00ee7b8..e0aa4aa 100644
--- a/src/tests/config/dump_request.ini
+++ b/src/tests/config/dump_request.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().dump("/tmp/dump_results/"); sp.disable_function.function("system").drop().dump("/tmp/dump_results/");
diff --git a/src/tests/config/dump_request_invalid_folder.ini b/src/tests/config/dump_request_invalid_folder.ini
index b5ae154..60604d0 100644
--- a/src/tests/config/dump_request_invalid_folder.ini
+++ b/src/tests/config/dump_request_invalid_folder.ini
@@ -1 +1 @@
sp.disable_functions.function("system").drop().dump("/root/NON_EXISTENT/FOLDER/PLEASE/"); sp.disable_function.function("system").drop().dump("/root/NON_EXISTENT/FOLDER/PLEASE/");