安全更新
v3.0.7 更新
修复 读取微信公钥证书的判断
影响版本:v3.0.6版本
更新说明:v3.0.7发布一处功能修复,请受影响的版本立即更新升级到最新版本,如果无法更新升级,请尝试手动进行修复
修复方法:修改 addons/shopro/library/pay/provider/Wechat.php 文件,formatConfig 方法的大概 332 行,增加如下代码,修复后如图所示
$config['wechat_public_cert_id'] = $config['wechat_public_cert_id'] ?? '';
$config['wechat_public_cert'] = $config['wechat_public_cert'] ?? '';优化 代码,防止 sql 注入
影响版本:版本号小于v3.0.7的所有版本
更新说明:v3.0.7发布一处重要安全更新,请受影响的版本立即更新升级到最新版本,如果无法更新升级,请尝试手动进行修复
修复方法:
1、修改 addons/shopro/filter/goods/GoodsFilter.php 文件,categoryIds 方法大概 32行 修改如下所示增加如下代码,修改完后如图所示
$categoryIds = array_map('intval', $categoryIds);2、修改 addons/shopro/filter/goods/GoodsFilter.php 63行 id 方法替换为如下代码
public function id($query, $id)
{
$id = $this->getValue($id);
$id = array_map('intval', is_array($id) ? $id : explode(',', $id));
if ($id) {
$query = $this->query->orderRaw('field(id, ' . implode(',', $id) . ')'); // 按照 ids 里面的 id 进行排序
$query = $this->query->whereIn('id', $id);
}
return $query;
}3、 修改 addons/shopro/service/goods/GoodsService.php 文件 大概 144 行 whereIds 方法,替换为如下代码
public function whereIds($ids = '')
{
$ids = array_map('intval', is_array($ids) ? $ids : explode(',', $ids));
$this->md5s[] = 'ids:' . implode(',', $ids);
if (!empty($ids)) {
$this->query = $this->query->orderRaw('field(id, ' . implode(',', $ids) . ')'); // 按照 ids 里面的 id 进行排序
$this->query = $this->query->whereIn('id', $ids);
}
return $this;
}4、修改 addons/shopro/service/goods/GoodsService.php 文件,大概 164 行 category 方法,增加如下代码,修改完后如图所示
$category_id = intval($category_id);5、修改 application/admin/model/shopro/Coupon.php 文件,大概 112 行 scopeGoods 方法的大概128行替换如下代码,修改后如图所示
$category_ids = array_filter(explode(',', $category_ids));替换为
$category_ids = array_filter(array_map('intval', explode(',', $category_ids)));文档最后更新时间:2025-09-05 10:18:42
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。
← 消息通知配置
未解决你的问题?请到问答社区「Shopro商城专区」反馈你遇到的问题