use*_*816 1 typo3 fluid typoscript extbase
我构建了一个扩展和一个插件,前端用户可以编辑他们的个人资料,但我注意到一个关键问题:
在"编辑配置文件"下,用户可以看到有关未登录的其他用户的完整信息.显然,该表单是在服务器上缓存的,因为添加后:
config.no_cache = 1
Run Code Online (Sandbox Code Playgroud)
它没有再次发生.现在的问题是整个网站上的索引是禁用的.
有没有办法只为这个特定的扩展/插件禁用缓存?
你应该在你的ext_localconf.php:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
$_EXTKEY,
'List',
array('User' => 'list,editProfil'),
array('User' => 'editProfil') // Uncached actions
);
Run Code Online (Sandbox Code Playgroud)
以下是解释的地方:https://docs.typo3.org/typo3cms/ExtbaseFluidBook/4-FirstExtension/7-configuring-the-plugin.html
如果您希望将其仅应用于特定页面或由集成商控制,则可以覆盖对象的TS渲染指令:
tt_content.list.20.YOURLISTTYPEHERE = USER_INT
Run Code Online (Sandbox Code Playgroud)
或者,如果您将其注册为自定义CType:
tt_content.YOURCTYPEHERE.20 = USER_INT
Run Code Online (Sandbox Code Playgroud)
上面的应该适用于fluid_styled_content和css_styled_content。
config.no_cache = 1正如您发现的那样,几乎不建议使用,因为这会禁用很多功能,而不仅仅是缓存。它还会禁用整个页面的所有缓存,并且几乎总是使特定插件不可缓存,这对于提高性能几乎总是更好的,并且,如果可能的话,仅在插件用来渲染不应缓存的视图的页面上这样做。
如果最终需要缓存视图的某些部分,请小心。就安全性而言,这并不是万灵丹,但它始终是在任何高速缓存标识符中始终包含用户ID(以及身份验证中的其他内容)的一个良好的开端。并尽量不要在任何时候将敏感信息存储在缓存中,包括在其中输出用户名之类的代码的代码。
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |