首页 » Ecshop » Ecshop礼品卡兑换功能后台判断不严谨的问题

Ecshop礼品卡兑换功能后台判断不严谨的问题

12146 5

今天tiandi在做礼品卡兑换功能的手机版的时候发现,电脑版的礼品卡兑换功能有漏洞,用户可以通过前台修改兑换的礼品ID,而直接使用礼品卡来兑换任何礼品。

来看关键代码的FORM提交的时候,虽然goods_id做了隐藏属性,但是通过浏览器用户还是可以将其value改成任意值,由于后台文件没有对good_id进行任何验证,导致这样用户可以很随意的兑换到该礼品卡不能兑换的商品。

<form action="gift_gard.php" method="post" name="theForm" id="theForm" onsubmit="(function(){return check_take})">

    ......
    <input type="submit" name="Submit" class="bnt_blue_2" value="确认兑换" />
    <input type="hidden" name="act" value="check_take" />
    <input name="goods_id" id="goods_val_id" type="hidden" value="" />
</form>

解决办法,是在后台php文件添加验证。打开gift_gard.php中找到下面的第一行,在其后面添加余下的代码。

$goods_id = empty($_POST['goods_id']) ? '0' : trim($_POST['goods_id']);
	//by tiandi 后台增加兑换礼品id验证,避免被前台篡改ID后提非礼品卡上的货
	$sql = "SELECT config_goods_id FROM " . $ecs->table('user_gift_gard')  . " WHERE gift_sn='$_SESSION[gift_sn]'";
	$goods_ids = $db->getOne($sql);
	$goods_ids = ",".$goods_ids;
	if(!stristr($goods_ids,",".$goods_id.","))
		show_message('非法操作!', '返回重新提货', 'gift_gard.php',  'error');

OK,大功告成!

文章评分2次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2014/12/ecshop-bug-on-gift_gard/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


5 Comments

  1. 常用 :

    求资源地址 tks 1304135191@qq.com

  2. 方法 :

    亲 资料地址呢

  3. 神父 :

    一直都是Ecshop,一直插不上话

载入分页评论...