Commit graph

53 commits

Author SHA1 Message Date
MDW
a0b820564f
QUAL: Add SqlInjectionPlugin to detect unsafe SQL variable usage (fixes, notices) (#38722)
* QUAL: Add SqlInjectionPlugin to detect unsafe SQL variable usage

# QUAL: Add SqlInjectionPlugin to detect unsafe SQL variable usage

This commit adds a new SqlInjectionPlugin to the Phan configuration, which helps detect unsafe SQL variable usage in the Dolibarr codebase. The plugin checks for variables used in sql expressions that are not properly escaped, cast, or protected by safe methods.

* Qual: Add SqlInjection exceptions to Phan baseline

* Qual: Add SqlInjection exceptions to Phan baseline

* Qual: Update baseline.txt to remove SqlInjection suppressions

The SqlInjection suppressions have been removed from the baseline.txt file.
This reenables the notification of "unfixed" cases.

* Qual: SQL injection detection for missing quotes on escaped strings

# Qual: SQL injection detection for missing quotes on escaped strings

In summary: report lines with missing quotes as in `" WHERE ".$db->escape($value)." OR "`.

* Qual: Fix code for SqlInjection analysis

# Qual: Fix code for SqlInjection analysis

Rewrite some escape calls, change escape() in sanitize(), rename variable, ignore SqlInjection notices.

* Qual: Update baseline

Allow some SqlInjection* notices, to be fixed later or already fixed in develop.
2026-08-08 11:19:04 +02:00
Laurent Destailleur
a09519ce41 Fix phan 2026-06-01 23:47:52 +02:00
Laurent Destailleur
5294805890 Removed non relevant test 2026-03-16 10:14:43 +01:00
Laurent Destailleur
2ed9107dc0 Try to fix phan 2026-01-28 18:32:27 +01:00
MDW
8669993ecf
Qual: Fix phan notices (compta/prel..fichinter) (#33485)
* Qual: Fix phan notices (asset..compta/paiement)

* Qual: Fix phan notices (compta/prel..fichinter)
2025-03-19 15:21:48 +01:00
MDW
f625f8de60
Qual: Fix api phan notices 2025-03-05 13:22:08 +01:00
MDW
035ede5874
Qual: Fix phan notices in API classes 2025-03-02 20:49:46 +01:00
ldestailleur
b6fb623911 Fix phan 2025-02-25 02:33:20 +01:00
MDW
7f6c09fc63
Qual: Update baseline, enable PhanTypeMismatchArgument
# Qual: Update baseline, enable PhanTypeMismatchArgument

Update the baseline for fixes.
Enable PhanTypeMismatchArgument as this is being fixed and to avoid
that new cases occur in files where these are fixed.
Only about 3800 cases remain, was more than 12000 when starting with Phan.
2025-02-03 16:05:59 +01:00
MDW
ba53bd741d
Qual: Update phan baseline 2025-01-27 13:24:32 +01:00
MDW
56dc321665
Qual: Fix phan notices (in order of appearance) (#31768)
* Qual: Fix phan notices (in order of appearance)

* Qual: Fix phan notices (in order of appearance)/2
2024-11-12 00:35:14 +01:00
MDW
278d301f32
Qual: Fix phan/phpstan notices in class files (part 6) (#31634)
* Qual: Fix notices for paymentdonation...workstationusergroup.class

* Qual: Fix PhanPluginRedundantReturnComment, update baseline

* Qual: Complete array phpdoc for properties
2024-11-06 23:57:45 +01:00
MDW
76d801dcb3
Qual: Fix phan by adding typing hints, fix arguments (#31466)
* Do not analyze custom

* Update baseline, ignore everything in custom

* Qual: Fix notices in files related to ticket class

* Qual: Add typing hints to tpl files + other 'fixes'

* Qual: fix typing issu gy typing intermediate variable
2024-10-20 01:57:12 +02:00
MDW
42bb4fbf3e
Qual: Enable & fix or ignore Invalid DimOffset (#31176)
* Qual: Enable & fix or ignore Invalid DimOffset

# Qual: Enable & fix or ignore Invalid DimOffset

The Invalid DimOffset notices occur when array keys are defined and
the index used is not amongst the known array keys.

This PR enables these notices and fixes array definitions when needed,
or ignores the notices locally if it's a false positive, or in the
baseline.txt when it does not seem to be a false positive so that
it can be fixed later

* Nullable object typing in function signature not ok for 7.0/8.4

Can't user '?User' as argument type for PHP7.0 which is required by PHP8.4.
Therefore, removing the typing specification in the function definition

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-09-29 21:52:31 +02:00
Laurent Destailleur
49f40b58fe Removed some warning (not priority) 2024-08-03 14:02:09 +02:00
Laurent Destailleur
b494d26f95 Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into develop 2024-07-25 14:51:48 +02:00
Laurent Destailleur
5c9b808f3f Fix phan 2024-07-25 10:44:43 +02:00
Laurent Destailleur
8f5b98be43 Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into develop 2024-06-25 13:50:27 +02:00
Laurent Destailleur
92bc6c9102 Eclude some phan warnings 2024-06-25 12:10:47 +02:00
Laurent Destailleur
ec25b85e35 Exclude more phan warnings 2024-06-21 17:27:52 +02:00
Laurent Destailleur
eb537088ba Exclude phan error type that is for the moment too annoying to manage 2024-06-18 19:15:29 +02:00
Laurent Destailleur
8971c8efac Exclude phan rule 2024-06-03 21:30:25 +02:00
Laurent Destailleur
82908a30eb Clean phan warnings 2024-05-30 13:37:17 +02:00
Laurent Destailleur
4b5b4c4e1a Clean some expected warnings 2024-05-13 12:49:14 +02:00
Laurent Destailleur
d523cb24e6 Disable useless phan warnings 2024-05-10 11:48:27 +02:00
Frédéric FRANCE
26da44e254
fix phpstan (#29431)
* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* remove params not used

* add WARNING
2024-04-27 12:45:50 +02:00
Laurent Destailleur
ca65e9a333 QUAL the config_extended of phpstan will be kept on apstats only for the
moment: Too many CTI error not related to PR.
2024-04-24 21:44:58 +02:00
Laurent Destailleur
a669c3d3fa Disable PhanUndeclaredGlobalVariable 2024-04-24 20:56:41 +02:00
Laurent Destailleur
5166eee88c Clean code 2024-04-24 20:29:37 +02:00
Laurent Destailleur
ba25317a97 Exclude PhanDeprecatedProperty for the moment 2024-04-05 10:22:01 +02:00
MDW
a703ea1092
Add checks on dol_(mktime|now|print_date) + avoid duplicate phan conf 2024-03-27 10:18:39 +01:00
Laurent Destailleur
414c51d631
Update config_extended.php 2024-03-24 16:38:51 +01:00
Laurent Destailleur
d78bafe602
Update config_extended.php 2024-03-24 16:38:21 +01:00
MDW
a1ae115757
Set cache_codes global type 2024-03-24 15:40:25 +01:00
MDW
02960415cb
Fix global typing of menumanager as MenuManager 2024-03-24 11:03:22 +01:00
MDW
2a13f7134c
Qual: Add extra phan stubs fixing PhanUndeclaredClassMethod 2024-03-23 14:29:54 +01:00
MDW
04d7142463
Disable HTML plugin (detects HTML in PHP files)
# Disable HTML plugin (detects HTML in PHP files)

These messages are not really useful for dolibarr.
2024-03-19 18:09:19 +01:00
MDW
cd3ea72f96
Qual: Disable global variable suggestion for $website 2024-03-19 02:44:07 +01:00
MDW
3c968477cb
Change type of global $website to string 2024-03-19 02:44:04 +01:00
MDW
686facd74d
Fix PhanPluginWhitespaceTrailing + format code + minor spelling 2024-03-17 21:35:08 +01:00
MDW
aa5aa2bf26
Add one more index to the theme_datacolor 2024-03-17 19:49:10 +01:00
MDW
d73886281c
Qual: Set typing for global 2024-03-17 18:56:44 +01:00
MDW
97f4e4f462
Qual: Disable PhanPluginDuplicateCatchStatementBody which requires PHP7.1 for fix
# Qual: Disable PhanPluginDuplicateCatchStatementBody which requires PHP7.1 for fix

To fix this PHP7.1 is required, so skipping the message in the extended
report as well.
2024-03-14 20:05:32 +01:00
Francis Appels
75e99a6dee Fix phan tool for shipping 2024-03-12 11:21:42 +01:00
MDW
9c00a465c9
Qual: phan: Add more global definitions (#28745)
* Qual: phan: Add more global definitions

# Qual: phan: Add more global definitions

Add some more typing information for globals

* Qual: phan: ignore local conf file which may contain exceptions

* Qual: phan: add a few more global typings
2024-03-11 12:55:44 +01:00
Laurent Destailleur
bb6cf2c6ed Fix warning 2024-03-08 23:00:55 +01:00
Laurent Destailleur
8528b3f363 Clean conf 2024-03-04 18:33:32 +01:00
Laurent Destailleur
4f3a6d1959 Removed false positive 2024-03-01 01:58:06 +01:00
Laurent Destailleur
dd3415b1ac Fix phan error and remove false alert 2024-02-29 16:41:00 +01:00
MDW
7391ad42ed
Qual: Enable detection of deprecated modulename & GETPOST(...,'int') (#28457)
* Qual: Enable detection of deprecated modulename & GETPOST(...,'int')

# Qual: Enable detection of deprecated modulename & GETPOST(...,'int')

Enable phan rules to verify deprecated modulename usage and GETPOST(...,'int')
usage in the code.

* Qual: Try type hint on  to help avoid notification

* Qual: Accept 3 parameters for GETPOST to GETPOSTINT conversion

* Qual: Convert GETPOST(...,'int',VALUE) to GETPOSTINT(...,VALUE)

# Qual: Convert GETPOST(...,'int',VALUE) to GETPOSTINT(...,VALUE)

Following the update to the fixer to also convert GETPOST... with 3 parameters.
The files are now converted.
2024-02-28 23:25:16 +01:00