mirror of
https://github.com/joomla-extensions/jedchecker.git
synced 2024-12-25 03:36:00 +00:00
Added more allowed defines via array. Changed order of stripos checks to be as quick as possible.
This commit is contained in:
parent
17829c4b06
commit
3324bb12b0
@ -68,33 +68,43 @@ class jedcheckerRulesJexec
|
|||||||
{
|
{
|
||||||
$content = (array) file($file);
|
$content = (array) file($file);
|
||||||
|
|
||||||
|
$defines = array(
|
||||||
|
'_JEXEC',
|
||||||
|
'JPATH_PLATFORM',
|
||||||
|
'JPATH_BASE',
|
||||||
|
'AKEEBAENGINE',
|
||||||
|
'WF_EDITOR'
|
||||||
|
);
|
||||||
|
|
||||||
foreach($content AS $line)
|
foreach($content AS $line)
|
||||||
{
|
{
|
||||||
$pos_2 = strpos($line, '_JEXEC');
|
foreach ($defines AS $define)
|
||||||
|
{
|
||||||
|
// Search for "defined"
|
||||||
|
$pos_1 = stripos($line, 'defined');
|
||||||
|
// Skip the line if "defined" is not found
|
||||||
|
if ($pos_1 === false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Skip the line if _JEXEC is not found
|
// Search for "die".
|
||||||
if($pos_2 === false) {
|
// "or" may not be present depending on syntax
|
||||||
// Alternatively search for JPATH_PLATFORM
|
$pos_3 = stripos($line, 'die');
|
||||||
$pos_2 = strpos($line, 'JPATH_PLATFORM');
|
// Skip the line if "die" is not found
|
||||||
|
if ($pos_3 === false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Nothing found, skip the line
|
// Search for the define
|
||||||
|
$pos_2 = strpos($line, $define);
|
||||||
|
// Skip the line if the define is not found
|
||||||
if($pos_2 === false) continue;
|
if($pos_2 === false) continue;
|
||||||
}
|
|
||||||
|
|
||||||
// Search for "defined" and "die". "or" may not be present
|
// Check the position of the words
|
||||||
// depending on syntax
|
if($pos_2 > $pos_1 && $pos_3 > $pos_2) {
|
||||||
$pos_1 = stripos($line, 'defined');
|
unset($content);
|
||||||
$pos_3 = stripos($line, 'die');
|
return true;
|
||||||
|
}
|
||||||
// Both words must be present
|
|
||||||
if($pos_1 === false || $pos_3 === false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check the position of the words
|
|
||||||
if($pos_2 > $pos_1 && $pos_3 > $pos_2) {
|
|
||||||
unset($content);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user