ecshop api.php,ecshop2.72 api.php 文件鸡肋注入

/api.php

.........................

switch ($_POST['act'])

{

case 'search_goods_list': search_goods_list(); break;

//............................

default: api_err('0x008', 'no this type api'); //输出系统级错误:数据异常

}

.........................

function search_goods_list()

{

check_auth();           //检查基本权限 ~~~鸡肋了

$version = '1.0'; //版本号

if ($_POST['api_version'] != $version)    //网店的接口版本低

{

api_err('0x008', 'a low version api');

}

if (is_numeric($_POST['last_modify_st_time']) && is_numeric($_POST['last_modify_en_time']))

{

$sql = 'SELECT COUNT(*) AS count' .

' FROM ' . $GLOBALS['ecs']->table('goods') .

" WHERE is_delete = 0 AND is_on_sale = 1 AND (last_update > '" . $_POST['last_modify_st_time'] . "' OR last_update =

0)";

$date_count = $GLOBALS['db']->getRow($sql);

if (empty($date_count))

{

api_err('0x003', 'no data to back'); //无符合条件数据

}

$page = empty($_POST['pages']) ? 1 : $_POST['pages'];       //没过滤

$counts = empty($_POST['counts']) ? 100 : $_POST['counts']; //没过滤

$sql = 'SELECT goods_id, last_update AS last_modify' .

' FROM ' . $GLOBALS['ecs']->table('goods') .

" WHERE is_delete = 0 AND is_on_sale = 1 AND (last_update > '" . $_POST['last_modify_st_time'] . "' OR last_update =

0)".

" LIMIT ".($page - 1) * $counts . ', ' . $counts;       //$counts也没用单引号包含

$date_arr = $GLOBALS['db']->getAll($sql);

..............................

}

function check_auth()

{

$license = get_shop_license();   // 取出网店 license信息

if (empty($license['certificate_id']) || empty($license['token']) || empty($license['certi']))

{

api_err('0x006', 'no certificate'); //没有证书数据,输出系统级错误:用户权限不够

}

if (!check_shopex_ac($_POST, $license['token']))

{

api_err('0x009'); //输出系统级错误:签名无效

}

/* 对应用申请的session进行验证 */

$certi['certificate_id'] = $license['certificate_id']; // 网店证书ID

$certi['app_id'] = 'ecshop_b2c'; // 说明客户端来源

$certi['app_instance_id'] = 'webcollect'; // 应用服务ID

$certi['version'] = VERSION . '#' .   RELEASE; // 网店软件版本号

$certi['format'] = 'json'; // 官方返回数据格式

$certi['certi_app'] = 'sess.valid_session'; // 证书方法

$certi['certi_session'] = $_POST['app_session']; //应用服务器申请的session值

$certi['certi_ac'] = make_shopex_ac($certi, $license['token']); // 网店验证字符串

$request_arr = exchange_shop_license($certi, $license);

if ($request_arr['res'] != 'succ')

{

api_err('0x001', 'session is invalid'); //输出系统级错误:身份验证失败

}

}

function get_shop_license()

{

// 取出网店 license

$sql = "SELECT code, value

FROM " . $GLOBALS['ecs']->table('shop_config') . "

WHERE code IN ('certificate_id', 'token', 'certi')

LIMIT 0,3";

$license_info = $GLOBALS['db']->getAll($sql);

$license_info = is_array($license_info) ? $license_info : array();

$license = array();

foreach ($license_info as $value)

{

$license[$value['code']] = $value['value'];

}

return $license;

}

鸡肋的是check_auth()作了权限检查

EXP:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值