安全更新

v3.0.7 更新

BvgxJSAmfzrYnOLikXkn71JXVzjnYvFN7jMmEw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

修复 读取微信公钥证书的判断

影响版本:v3.0.6版本
更新说明:v3.0.7发布一处功能修复,请受影响的版本立即更新升级到最新版本,如果无法更新升级,请尝试手动进行修复
修复方法:修改 addons/shopro/library/pay/provider/Wechat.php 文件,formatConfig 方法的大概 332 行,增加如下代码,修复后如图所示

pTwPCivlnfxFcNYdYNp4JT5QbC3ZiufhcbERew==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
        $config['wechat_public_cert_id'] = $config['wechat_public_cert_id'] ?? '';
        $config['wechat_public_cert'] = $config['wechat_public_cert'] ?? '';
wPTRJqXnhGuzDardNWMJOeLI+UgUYiaGxNkKGw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

image.png

pxlqajBMDOTzWYdF3+VmsuZy1mj++DDE6Mx7UQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

优化 代码,防止 sql 注入

影响版本:版本号小于v3.0.7的所有版本
更新说明:v3.0.7发布一处重要安全更新,请受影响的版本立即更新升级到最新版本,如果无法更新升级,请尝试手动进行修复
修复方法:
1、修改 addons/shopro/filter/goods/GoodsFilter.php 文件,categoryIds 方法大概 32行 修改如下所示增加如下代码,修改完后如图所示

bvLjyYGQHATpJcDNjNNrjLmpffGvsnvofEs2MQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$categoryIds = array_map('intval', $categoryIds);
yIfxWwJvnjCtRgqa5khZT9qTHc+mb4P4/mwjew==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

image.png

UtanHiGoJjcWIeZDiSz5F4F/DU8SoJs13UzAkg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

2、修改 addons/shopro/filter/goods/GoodsFilter.php 63行 id 方法替换为如下代码

dgoCpZITHPRnJUOjvWKpnT6Kh8XOHO4tCdaemg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
    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;
    }
ObMymhIRPioQztgTM2oJN0kvTVgEV1xS+Jx7wQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

3、 修改 addons/shopro/service/goods/GoodsService.php 文件 大概 144 行 whereIds 方法,替换为如下代码

xBMEHtWOVNKAIFUpHKuBpf3lVEEeMT/1p1qDGA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
    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;
    }
inNbskhfgrEzxpeIdIkn6CrizjdEbKsET7HwRw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

4、修改 addons/shopro/service/goods/GoodsService.php 文件,大概 164 行 category 方法,增加如下代码,修改完后如图所示

cezoRmKpMEugWrkqarfL2vkznqamaOvjE96pMQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$category_id = intval($category_id);
CABmjupVbqcvTnHWTxILsMeZHnSOWVxKVNQw1g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

image.png

SbJEydzTxYioclvV4WK8R6lcv4Lxr6K3pIC33A==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

5、修改 application/admin/model/shopro/Coupon.php 文件,大概 112 行 scopeGoods 方法的大概128行替换如下代码,修改后如图所示

LsWijMmqcXSVrhfHJY2WPuV+UrFqdK9FSVRqsA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$category_ids = array_filter(explode(',', $category_ids));
CrpMBEzIXieFQZVPZEqhiL7il97rQREoBZr20Q==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

替换为

eDXkMGNlBguVCUFHE2h3zs5gOeqdUOzMZVtj/A==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$category_ids = array_filter(array_map('intval', explode(',', $category_ids)));
sgzNhyIHQOMYwPGlaKUvscRxDxCusMlpIfCcTg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

image.png

文档最后更新时间:2025-09-05 10:18:42
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。

文档
目录

深色
模式

切换
宽度