1 | <?php |
||
8 | class UnsafeUnserialize extends AbstractFunctionCallAnalyzer |
||
9 | { |
||
10 | const DESCRIPTION = 'Checks for use of `unserialize()` without a 2nd parameter defining the allowed classes. Requires PHP 7.0+'; |
||
11 | |||
12 | 4 | public function pass(FuncCall $funcCall, Context $context) |
|
13 | { |
||
14 | 4 | $functionName = $this->resolveFunctionName($funcCall, $context); |
|
15 | |||
16 | 4 | if ($functionName !== 'unserialize') { |
|
17 | 3 | return false; |
|
18 | } |
||
19 | |||
20 | 1 | if (count($funcCall->args) < 2) { |
|
21 | 1 | $context->notice( |
|
22 | 1 | 'unsafe.unserialize', |
|
23 | 1 | sprintf('unserialize() should be used with a list of allowed classes or false as 2nd parameter.'), |
|
24 | 1 | $funcCall |
|
25 | ); |
||
26 | 1 | return true; |
|
27 | } |
||
28 | |||
29 | 1 | return false; |
|
30 | } |
||
31 | |||
32 | /** |
||
33 | * {@inheritdoc} |
||
34 | */ |
||
35 | 57 | public static function getMetadata() |
|
42 | } |
||
43 |