Php 禁用购物车输入过滤的Magento core修改的效果?

Php 禁用购物车输入过滤的Magento core修改的效果?,php,mysql,security,magento,sql-injection,Php,Mysql,Security,Magento,Sql Injection,我目前正在开发一个已经修改过的magento版本(V1.6.1)。 以前的开发者已经修改了app/core本身,如果我升级到1.7呢? 它将恢复原始应用程序/核心,对吗?(因为我知道每个mod都应该放在app/local下) 然后我注意到,通过在电子商务上运行diff和一个干净的1.6.1安装,开发人员已经应用了这个修改(标有“编辑的一个”的行) diff-app/code/core/Mage/Checkout/controllers/CartController.php 169C169170

我目前正在开发一个已经修改过的magento版本(V1.6.1)。 以前的开发者已经修改了app/core本身,如果我升级到1.7呢? 它将恢复原始应用程序/核心,对吗?(因为我知道每个mod都应该放在app/local下)

然后我注意到,通过在电子商务上运行diff和一个干净的1.6.1安装,开发人员已经应用了这个修改(标有“编辑的一个”的行)

diff-app/code/core/Mage/Checkout/controllers/CartController.php
169C169170
<$params['qty']=$filter->filter($params['qty']);
---
>#$params['qty']=$filter->filter($params['qty']);
>$params['qty']=$params['qty'];
311C312313
<$params['qty']=$filter->filter($params['qty']);
---
>#$params['qty']=$filter->filter($params['qty']);
>$params['qty']=$params['qty'];
383C385386
<$cartData[$index]['qty']=$filter->filter(trim($data['qty']);
---
>//$cartData[$index]['qty']=$filter->filter(修剪($data['qty']);
>$cartData[$index]['qty']=$data['qty'];
正如您可能注意到的,他们禁用了$filter->filter和trim

这不会使电子商店暴露于SQLInjections或类似的任意代码执行吗?
magento在将此数据存储到数据库中之前是否执行了另一项检查?

以前的开发人员删除的筛选函数不用于筛选SQL注入或其他安全风险的输入。它们用于将本地化输入转换为标准表单,该表单可以在不考虑区域设置的情况下进行处理。以下是第一个差异的扩展上下文:

$filter = new Zend_Filter_LocalizedToNormalized(
    array('locale' => Mage::app()->getLocale()->getLocaleCode())
);
$params['qty'] = $filter->filter($params['qty']);
请参阅Zend文档了解does

Magento有内置的保护措施,通过使用标准数据库类在构造查询之前过滤所有数据来防止SQL注入。该逻辑位于Mage_Core_Model_Resource_*类以及存储在/lib/Zend中的Zend库中。只要以前的开发人员没有修改这些类,就不会有额外的SQL风险

当然,跨站点脚本始终是一个潜在的问题,但风险通常更多地存在于视图层(PHTML和块类),而不是控制器层或模型层

$filter = new Zend_Filter_LocalizedToNormalized(
    array('locale' => Mage::app()->getLocale()->getLocaleCode())
);
$params['qty'] = $filter->filter($params['qty']);