Quote:
Originally Posted by VBDev
I have used stangger5 fix but was getting the reported issue with stristr on a customer forum.
I did the below edit, code will do the same and is simpler.
In arcade.php search for the ibp_cleansql function, search for
PHP Code:
// remove any SQL-commands
Add below :
PHP Code:
$sqlcomm = array();
Then search for :
PHP Code:
$value = recursive_str_ireplace($sqlcomm, '', $value);
Comment it out :
PHP Code:
// $value = recursive_str_ireplace($sqlcomm, '', $value);
Add after :
PHP Code:
foreach ($sqlcomm AS $key => $needle)
{
$value = str_ireplace($needle, '', $value);
}
That does the same but is fairly simpler...
Though I must admit that Mrz fixed the 2.7.1 security issue rather uglily...
That bit of code could remove actual correct content ...
|
so it should like this ?
Code:
function ibp_cleansql($value)
{
if( get_magic_quotes_gpc() )
{
$value = stripslashes( $value );
}
//check if this function exists
if( function_exists( "mysql_real_escape_string" ) )
{
$value = mysql_real_escape_string( $value );
}
//for PHP version < 4.3.0 use addslashes
else
{
$value = addslashes( $value );
}
// remove any SQL-commands
$sqlcomm = array();
$sqlcomm[] = 'create';
$sqlcomm[] = 'database';
$sqlcomm[] = 'table';
$sqlcomm[] = 'insert';
$sqlcomm[] = 'update';
$sqlcomm[] = 'rename';
$sqlcomm[] = 'replace';
$sqlcomm[] = 'select';
$sqlcomm[] = 'handler';
$sqlcomm[] = 'delete';
$sqlcomm[] = 'truncate';
$sqlcomm[] = 'drop';
$sqlcomm[] = 'where';
$sqlcomm[] = 'or';
$sqlcomm[] = 'and';
$sqlcomm[] = 'values';
$sqlcomm[] = 'set';
$sqlcomm[] = 'password';
$sqlcomm[] = 'salt';
$sqlcomm[] = 'concat';
$sqlcomm[] = 'schema';
//$value = recursive_str_ireplace($sqlcomm, '', $value);
foreach ($sqlcomm AS $key => $needle)
{
$value = str_ireplace($needle, '', $value);
}
return $value;
}
I been using stangger5's edit and works on every update I did..
I am just wondering at this moment.. thanks