This xsp page is based on (copied from) the event aware cacheable xsp sample.
I pause for 2 seconds during generation, so
that you can tell if I'm being served from the cache or not.
What you see here was generated on Sun Jun 07 13:10:12 WIB 2026.
I'm cached for a specific database table name: user. Other parameters ie. request parameters do not matter.
Unlike other cacheable pages in Cocoon, I can be un-cached by events external
to Cocoon - for instance, when a database table or row is updated. I will also
be invalidated when the XSP source is modified.
My cache entry will be invalidated (actually, removed) when an event named
user occurs. Go to the
database samples and modify,
insert, or delete a user and check if this page is updated.
Test links:
| 4 | |||
| ' | 140 | ||
| ' ORDER BY 999999999999; -- ' | 62 | ||
| '', (SELECT CONCAT('GWEa4', 'GWEa4')) -- ' | 276 | ||
| '', (SELECT CONCAT('_Lmnk', '_Lmnk')) -- ' | 64 | ||
| '+ | 144 | ||
| '+(SELECT CONCAT('Tqcyc', 'f7trz'))+' | 53 | ||
| '+(SELECT CONCAT('mbsPr', 'MRVVn'))+' | 262 | ||
| ', add-group = (SELECT CONCAT('DzitI', 'LBwo6')) -- ' | 270 | ||
| ', add-group = (SELECT CONCAT('aT9mT', '63Bgo')) -- ' | 59 | ||
| ', add-user-groups = (SELECT CONCAT('0SDNx', 'Pb4se')) -- ' | 263 | ||
| ', add-user-groups = (SELECT CONCAT('865Sf', 'fVV68')) -- ' | 54 | ||
| ', del-group = (SELECT CONCAT('GScdv', 'g6I6D')) -- ' | 269 | ||
| ', del-user = (SELECT CONCAT('ahJQN', 'dbRg5')) -- ' | 60 | ||
| ', del-user = (SELECT CONCAT('kId6_', '_R3ad')) -- ' | 272 | ||
| ', groups.gid = (SELECT CONCAT('pFhTx', '2BVfM')) -- ' | 271 | ||
| ', groups.gname = (SELECT CONCAT('Hf4qB', '0ZPaq')) -- ' | 264 | ||
| ', groups.gname = (SELECT CONCAT('fB8tV', 'AkbAk')) -- ' | 55 | ||
| ', upd-group = (SELECT CONCAT('Tqoqp', 'Waliq')) -- ' | 266 | ||
| ', user.firstname = (SELECT CONCAT('LpcNY', 'KSNyo')) -- ' | 273 | ||
| ', user.firstname = (SELECT CONCAT('vmTnm', 'bp4BF')) -- ' | 61 | ||
| ', user.name = (SELECT CONCAT('JgfH2', 'KMqjz')) -- ' | 58 | ||
| ', user.name = (SELECT CONCAT('vduj7', 'fTIP5')) -- ' | 268 | ||
| ', user.uid = (SELECT CONCAT('DW93o', 'xbByN')) -- ' | 57 | ||
| ', user.uid = (SELECT CONCAT('Vd1EP', 'qjbN3')) -- ' | 267 | ||
| ', user_groups.gid = (SELECT CONCAT('l8UGZ', 'TjW5S')) -- ' | 56 | ||
| ', user_groups.gid = (SELECT CONCAT('m6EiZ', 'ZlPZN')) -- ' | 265 | ||
| ','') #' | 63 | ||
| '|| | 141 | ||
| /0 | 142 | ||
| IsNHIvHDio | 11 | ||
| _QSETSoqyi | 180 | ||
| ".exit(md5('w4p1t1_md5'));# | alice | alice | 356 |
| ".exit(md5('w4p1t1_md5'));// | alice | alice | 355 |
| ";exit(md5('w4p1t1_md5'));# | alice | alice | 352 |
| ";exit(md5('w4p1t1_md5'));// | alice | alice | 351 |
| &ping -n 25 127.0.0.1& | alice | alice | 366 |
| &set& | alice | alice | 345 |
| '.exit(md5('w4p1t1_md5'));# | alice | alice | 358 |
| '.exit(md5('w4p1t1_md5'));// | alice | alice | 357 |
| ';exit(md5('w4p1t1_md5'));# | alice | alice | 354 |
| ';exit(md5('w4p1t1_md5'));// | alice | alice | 353 |
| ../../../../../../../../../../../../../../../usr/bin/env| | alice | alice | 487 |
| /e | alice | alice | 348 |
| ;env; | alice | alice | 339 |
| ;exit(md5('w4p1t1_md5'));# | alice | alice | 360 |
| ;exit(md5('w4p1t1_md5'));// | alice | alice | 359 |
| a);env; | alice | alice | 342 |
| a;env; | alice | alice | 341 |
| a;exit(md5('w4p1t1_md5'));# | alice | alice | 350 |
| a;exit(md5('w4p1t1_md5'));// | alice | alice | 349 |
| a;sleep 60; | alice | alice | 364 |
| a`)` | alice | alice | 362 |
| a`sleep 60` | alice | alice | 363 |
| alice | alice | alice | 277 |
| alice env; | alice | alice | 344 |
| alice;env; | alice | alice | 343 |
| a|sleep 60; | alice | alice | 365 |
| data:;base64,PD9waHAgZWNobyAndzRwMXQxJywnX2V2YWwnOyA/Pg== | alice | alice | 361 |
| env | alice | alice | 347 |
| set | alice | alice | 346 |
| |env | alice | alice | 340 |
Please refer to the event based cache example for more details on the event based cache invalidation.