【发布时间】:2018-12-25 22:54:14
【问题描述】:
以下源码需要避开sql-injection?
如果$some_text的例子是sql-injected攻击,下面的源代码是危险的?
-
一般 Magento 代码
$tmp_sale_info_collection = Mage::getModel('some/module') ->getCollection() ->addFieldToFilter('seller_id', array('eq' => $some_text)); -
使用
getSelect()内连接$orderItem = Mage::getModel('sales/order_item')->getCollection(); $orderItem->getSelect() ->joinInner( array( 'order' => Mage::getSingleton('core/resource')->getTableName('sales/order') ), 'order.entity_id = main_table.order_id' ) ->where('product_id=?', $some_text) ->order('main_table.order_id DESC'); -
使用
fetchAll()style1$select = $adapter->select() ->from($table, array()) ->where($entityTypeIdField . ' =?', $some_text) ->where('attribute_id =?', $some_text) ->where('store_id =?', $some_text) ->columns('*'); $values = $adapter->fetchAll($select); -
使用
fetchAll()style2$sql_select = "SELECT * from onetable where from_id ='$some_text'"; $resource = Mage::getModel('core/resource'); $read = $resource->getConnection('core_read'); $results = $read->fetchAll($sql_select);
哪个危险,哪个不危险?
=================== 已编辑===========================
-
修改第二个
$orderItem = Mage::getModel('sales/order_item')->getCollection(); $orderItem->getSelect() ->加入内部( 大批( 'order' => Mage::getSingleton('core/resource')->getTableName('sales/order') ), 'order.entity_id = '。 $some_text 。 ' ) ->where('product_id=?', $some_text) ->order('main_table.order_id DESC');
【问题讨论】:
标签: php magento sql-injection