|
List Info
Thread: Zend_Cache :Need a little help for an any hack attack issue
|
|
| Zend_Cache :Need a little help for an
any hack attack issue |

|
2008-01-21 14:08:55 |
|
Hi Out there,
I am searching for an solution for an issue
to prevent Zend_cache to write a lot of unnecessary Files if someone
Changes the request in a Loop.
Example:
for($id=0;$id<100000;$id++)
{
someGet(8216;www.website.com?Unknown_nonesense=̵7;.$id);
}
As you may already expected I am using the
querystring as ID for caching230;
I am currently thinking about some
complicated solutions but maybe somebody found a simple one *g
Some site Problems :
-
No MVC (old Typo3)
-
GET Params can change every day
-> list of allowed Params is not possible
Thanks guys
Christoph Hagenbrock
Current Implementation:
<?php
//AGEBROCK IMPLEMENTIERUNG ZEND CACHE
////////////////////-----------------------CACHE start
-------------------------//////////////////////
require_once 'Zend/Cache.php';
/**
* Cache Mock Objekt um den cache zu deaktvieren
* alle dc_Methoden lösen destroyCache aus wenn TRUE
*
* Mock Cache Object to deaktivate Caching
* all dc_methods will dispatch
destroyCache id TRUE
*/
class CacheMock
{
function start($id)
{
return false;
}
function end()
{
return true;
}
static function destoryCache()
{
global $cache;
$cache = new CacheMock();
}
/**
* duchsucht das $_GET nach Vorkommen im $config Array
* "*" kann als wildcard genutzt werden.
*
* param Array $config
*/
static function dc_checkGet($config)
{
foreach ($config as $key =>
$value)
{
if(isset($_GET[$key]))
{
if($_GET[$key] == $value ||
$_GET[$key] == '*')
{
self::destoryCache();
return;
}
}
}
}
static function dc_notEmpty($array)
{
if(!empty($array))
{
self::destoryCache();
}
}
}
////////////////////-----------------------CACHE
CONFIG -------------------------//////////////////////
$frontendOptions = array(
'lifetime' => 30, // caching for
"x secs"
'automatic_serialization' => false
);
$backendOptions = array(
'cache_dir' =>
'fileadmin/zendcache/'
);
$cache = Zend_Cache::factory('Output',
'File', $frontendOptions, $backendOptions);
////////////////////-----------------------
NO CACHE OPTIONS -------------------------/////////////////
//liste von ID's die nicht gecached werden sollen
$noGetConfig = array(
'id' => 363
);
CacheMock::dc_checkGet($noGetConfig);
CacheMock::dc_notEmpty($_POST);
////////////////////-----------------------
NO CACHE HACKS ;) -------------------------/////////////////
//tradedoubler correction
if(isset($_GET['tduid']))
{
$_SERVER['QUERY_STRING'] = 'agent=td';
}
$id = md5($_SERVER['QUERY_STRING']);
////////////////////----------------------- ENDE CACHE
CONTROL -------------------------/////////////////
/*
Start Sitebuilding
[CODE START]
if (!($cache->start($id))) {
///SITE CREATION ....
$cache->end();
}
[CODE ENDE]
*/
?>
|
[1]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|