首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 -如何将cHash在f:link.action中移除到未缓存的操作中?

TYPO3 -如何将cHash在f:link.action中移除到未缓存的操作中?
EN

Stack Overflow用户
提问于 2020-09-26 18:26:05
回答 1查看 573关注 0票数 0

编辑:@Wolffc的答案是完全正确的--我有一个错误的返回值,所以问题在椅子和屏幕之间。

TYPO3 10.4.8

我正在用在邮件中生成一个链接来验证对课程的订阅。

不能缓存它,所以我可以检查链接是否已经被点击,但是链接中添加了一个cHash。

代码语言:javascript
复制
<f:link.action
    action="validate"
    pluginName="Coursevalidation"
    extensionName="myextension"
    controller="Course"
    pageUid="1"
    absolute="1"
    pageType="1921"
    noCache="1"
    noCacheHash="1"
    arguments="{validationHash: subscription.validationHash, course:course, subscription:subscription}"
>Link</f:link.action>

文档中说不应该使用noCache和noCacheHash (“您不应该需要这个”),如果添加它也没有什么区别。

PageType是秘密的,1921.config.no_cache = 1

生成的链接导致(换行以提高可读性):

代码语言:javascript
复制
https://mydomain.ddev.site/email-validation
?no_cache=1
&tx_myextension_coursevalidation%5Baction%5D=validate
&tx_myextension_coursevalidation%5Bcontroller%5D=Course
&tx_myextension_coursevalidation%5Bcourse%5D=3
&tx_myextension_coursevalidation%5Bsubscription%5D=30
&tx_myextension_coursevalidation%5BvalidationHash%5D=40e83[...thats long ;)...]0d65c
&cHash=5d7688ac4f04a2d31a98f2cffb792e51

如您所见,有一个cHash。首先,链接上的klick触发了我的机制来检查所有内容并将订阅设置为有效,然后重定向到“成功”-Page,这正是它应该做的。

第二种方法也打开了成功的页面,但是应该有“已经验证”的信息。当我在没有cHash的情况下调用链接时,该页面将被打开。

为什么添加了一个cHash,我如何删除它?

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-26 20:09:57

必须将此操作定义为在ext_localconf.php中未执行的操作。

TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin

如果插件操作是非缓存的,typo3将正确地处理这个问题。

cHash是对请求参数的校验和,主要用于防止缓存膨胀攻击。如果攻击者生成随机参数集。如果cHash无效。结果将不会被缓存。但事实并非如此。如果cHash是有效的,那么可能仍然是页面的各个部分未被释放。(甚至整页)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64081163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档