2013-08-12 66 views
1

在错误框架中是否有任何SQL注入保护? 或者我必须自己照顾建立一个查询?typo3 sql注入保护

我找到了prepare_SELECTqueryArray,但没有它应该看起来的例子。 我的TYPO3版本是4.7。而这个prepare_SELECTqueryArray我在网站上用TYPO3 v.6.1发现。

回答

2

预处理语句至少在TYPO3 4.5都可以,你可以在这里看到[1] [2]

一个准备好的查询可能看起来像这样

$preparedQuery = $this->link->prepare_SELECTquery('fieldblob,fieldblub', $table, 'id=:id', '', '', '', array(':id' => 1)); 
$preparedQuery->execute(); 
$result = $preparedQuery->fetch(); 

$preparedQuery = $this->link->prepare_SELECTquery('fieldblob,fieldblub', $table, 'id=:id'); 
$preparedQuery->bindValues(array(':id' => 1)); 
$preparedQuery->execute(); 
$result = $preparedQuery->fetch(); 

[1] https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_4-5/t3lib/class.t3lib_db.php

[2] https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_4-5/t3lib/db/class.t3lib_db_preparedstatement.php

1

在许多地方值自动引用。在prepare_ *函数中,默认引用所有参数。

如果您使用exec_ * querys,则需要在您自己的某个部分中转义值。为此,使用$ GLOBALS ['TYPO3_DB'] - > fullQuoteStr($ value,$ tablename)。

请注意,您也可以使用TypoScript创建SQL注入。如果使用CONTENT-Object,则可以将GET/POST数据插入到where子句中。使用intval或select.markers来创建SQL注入保存查询。