需要清理TYPO3存储库功能中的用户输入吗?

问题描述

我有一个 TYPO3 存储库函数,可以创建一个like-query。
我想知道是否必须清理用户输入以防止 sql 注入,如果是,如何处理。
我读了 s.th。这是由教义层自动完成的。 我使用的是 TYPO3 9.5。

请指教。

这是我的存储库类和函数

class ProductRepository extends \TYPO3\CMS\Extbase\Persistence\Repository

{

/**
 * find
 *
 * @return Tx_Extbase_Persistence_QueryResult
 */


public function findAllLike( $name) {
   $query = $this->createquery();
   
    $orConstraints = array();
    $orConstraints[] = $query->like('productname','%'.$name.'%');
    $orConstraints[] = $query->like('Tradename','%'.$name.'%');    

    $constraints[] = $query->logicalOr($orConstraints);       

    return $query->matching($query->logicalAnd($constraints))->execute();
}

解决方法

是的,你必须逃避你喜欢的查询 请参阅有关 TYPO3 Querybuilder 的文档 https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Database/QueryBuilder/Index.html#database-query-builder-escape-like-wildcards