rspec/rules/S4823/php/rule.adoc

79 lines
1.5 KiB
Plaintext
Raw Permalink Normal View History

2020-06-30 12:49:37 +02:00
include::../description.adoc[]
include::../ask-yourself.adoc[]
include::../recommended.adoc[]
== Sensitive Code Example
2021-01-27 13:42:22 +01:00
Builtin access to ``++$argv++``
2020-06-30 12:49:37 +02:00
----
function globfunc() {
global $argv; // Sensitive. Reference to global $argv
foreach ($argv as $arg) { // Sensitive.
// ...
}
}
function myfunc($argv) {
$param = $argv[0]; // OK. Reference to local $argv parameter
// ...
}
foreach ($argv as $arg) { // Sensitive. Reference to $argv.
// ...
}
$myargv = $_SERVER['argv']; // Sensitive. Equivalent to $argv.
function serve() {
$myargv = $_SERVER['argv']; // Sensitive.
// ...
}
myfunc($argv); // Sensitive
$myvar = $HTTP_SERVER_VARS[0]; // Sensitive. Note: HTTP_SERVER_VARS has ben removed since PHP 5.4.
$options = getopt('a:b:'); // Sensitive. Parsing arguments.
$GLOBALS["argv"]; // Sensitive. Equivalent to $argv.
function myglobals() {
$GLOBALS["argv"]; // Sensitive
}
$argv = [1,2,3]; // Sensitive. It is a bad idea to override argv.
----
Zend Console
2020-06-30 12:49:37 +02:00
----
new Zend\Console\Getopt(['myopt|m' => 'this is an option']); // Sensitive
----
Getopt-php library
2020-06-30 12:49:37 +02:00
----
new \GetOpt\Option('m', 'myoption', \GetOpt\GetOpt::REQUIRED_ARGUMENT); // Sensitive
----
include::../see.adoc[]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]