-1

我正在修改一些旧的typo3 项目扩展。问题是我们必须留在那个 pibase 结构上,因为无论如何它都是由核心支持的。因此该扩展程序会执行一些简单的 CRUD 操作,在我的情况下是基于通过 $_POST 提交的值的插入。所以旧的扩展直接使用了 $_POST ,这不再受支持,我猜是因为 PSR-7 请求/响应实现。

但是现在我如何访问提交的值,因为 $_POST 不再可用并且我也没有 $this->request 因为扩展扩展了 AbstractPlugin。

编辑:我们也不在 main() 内,代码块在 sendMail() 内

我也不知道是从那里调用 sendMail 的,因为没有可用的 pibase 文档。

非常感谢帮助

4

1 回答 1

1

您可以访问 GET 和 POST 参数\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('name')

但出于安全原因,可能会被过滤掉。

我们有 cHash 的概念,它可以保护站点免受注入参数的影响。所有参数都必须是已知的,并由散列保护。TYPO3 通过 cHash 记住参数。如果给出了 cHash,则从数据库中获取参数,并忽略给服务器的参数。

对于表单(如ext:formext:powermail),不会生成 cHash,并且可以处理表单的字段。

如果您有“裸”表单和纯 php 文件要处理,您应该更改为表单扩展,您可以在其中使用现有的完成程序并可以添加额外的完成程序(和验证程序),对于这些完成程序,表单数据可以防止注入和您不需要访问$_GET$_POST

编辑:
这是一个问题/答案如何禁用单个表单值的 cHash 计算:TYPO3 - Deactivating cHash in own extension - 8LTS

于 2020-06-02T12:25:59.860 回答