Joomla,正确逃离他们自己的组件

时间:2016-01-08 14:22:01

标签: php joomla

我为Joomla编写了一个自定义组件。此RSS源可以从不同的源读取,并应存储在SQL数据库中。

但是如何正确使用逃脱功能呢?这是我的代码:

// Create a new query object.
$query = $db->getQuery(true);

// Insert columns.
$columns = array('id',
                 'id_feedsource', 
                 'title', 
                 'link', 
                 'pubDate', 
                 'timePubDate', 
                 'guid', 
                 'description', 
                 'creator', 
                 'content' , 
                 'read', 
                 'smart', 
                 'demografie', 
                 'urbanisierung', 
                 'arbeitswelten', 
                 'konnektivitaet', 
                 'nano', 
                 'femaleshift', 
                 'energie', 
                 'bildung', 
                 'individualisierung', 
                 'public', 
                 'cache');

// Insert values.
$values = array('NULL',
                $db->quote($db->escape($value['source'])),
                $db->quote($db->escape($value['title'])),
                $db->quote($db->escape($value['link'])),
                $db->quote($db->escape($value['pubDate'])),
                $db->quote($value['timePubDate']),
                $db->quote($db->escape($value['guid'])),
                $db->quote($db->escape($value['description'])),
                $db->quote($db->escape($value['creator'])),
                $db->quote($db->escape($value['content'])),
                0,0,0,0,0,0,0,0,0,0,0,0,0);

// Prepare the insert query.
$query
    ->insert($db->quoteName('#__heka_rss_feeds'))
    ->columns($db->quoteName($columns))
    ->values(implode(',', $values));

// Set the query object and execute it.
$db->setQuery($query);
//echo $query->dump().'<br>';
$db->execute();

现在添加个人贡献“\”。例如: 美国宇航局的费米太空望远镜锐化其高能量视野

发布时看起来不太好看。因为要使用转义SQL注入,但它可能还不正确。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

我相信$ db-&gt;引用也会逃避这些值。所以你会像你那样做双重逃脱。尝试

$values = array('NULL',
            $db->quote($value['source']),
            $db->quote($value['title']),
            $db->quote($value['link']), 
            ...

......哪个应该更好。请参阅文档https://dftestapp-petrfox.rhcloud.com/