问题描述
我有一个 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