20170614-0916-typo3-8-chash

Issue: 404 cHash empty (TYPO3 8) #

With #78002 the cHash is enforced for Extbase plugins if arguments are present. This however could break some functionality if it does not add a cHash argument but other arguments.

Some reasons why no cHash could be available:

  1. An external web site wants to link to a page on a TYPO3 site providing various parameters for an extension
  2. Using JavaScript to load content via ajax

The problem is that the external site / JavaScript could not create cHash. cHash creation is not trivial and involves using site–specific encryption key.

Setting config.no_cache = 1 or 10 = USER_INT does not help at all.

Background #

@see: #78002

TypoScriptFrontendController::reqCHash() is now called for Extbase frontend plugin actions just like they were usually called for the legacy AbstractPlugin.

This throws a 404, if plugin arguments are present, but cHash is not which would also happen, if the plugin arguments were added to "cHashRequiredParameters" configuration.

This provides a more reliable page caching behavior by default and with zero configuration for extension authors.

With the feature switch "requireCHashArgumentForActionArguments" this behavior can be disabled, which could be useful, if all actions in a plugin are uncached or one wants to manually control the cHash behavior.

To disable cHash comparison add a file named ext_typoscript_setup.txt containing the following content:
@see: Extbase TypoScript Setup

config.tx_extbase {
...

features {
# Should be on by default, but can be disabled if all action in the plugin are uncached
requireCHashArgumentForActionArguments = 0
}
}

Use this with care!