在拼写框架中是否有任何sql注入保护? 或者我必须自己照顾构建查询?
我找到了prepare_SELECTqueryArray,但没有示例它应该如何。 我的TYPO3版本是4.7。这个prepare_SELECTqueryArray我在网站上找到了TYPO3 v.6.1。
答案 0 :(得分: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 :(得分:1)
在许多地方,值会自动引用。在prepare_ *函数中,默认情况下引用所有参数。
如果使用exec_ * querys,则需要在自己的part部分中转义值。使用$ GLOBALS ['TYPO3_DB'] - > fullQuoteStr($ value,$ tablename)。
请注意,您也可以使用TypoScript创建SQL注入。如果使用CONTENT-Object,则可以将GET / POST数据插入where子句。使用intval或select.markers创建SQL-Injection保存查询。