Atitit.提升电子商务安全性 在线充值功能安全方面的计划性

说到底有口当悄悄地关爱而

贴近岁末,每家公司似乎还易得没空起来,雅丰制业自然也不殊,刘盼盼所当的国际市场机构由时差问题,在此关键时刻加班加点更是成为了家常便饭。

Atitit.提升电子商务安全性
在线充值功能安全方面的计划性

无非表现其端坐在办公桌前,双手于键盘上便捷地挥手着,正在恢复一家老客户关于船期和验货的邮件;陆洁在为此SKYPE与客户语音聊天,虽然看无展现对方,但是它那么招牌式的微笑也一直挂在脸上,仿佛客户只要透过声音就能够感受及它底笑脸一般;其他同事呢还当个别忙碌着,他们有些从在电话,有的跟客户视频,有的在整治在样品文案……

 

敲诈起键盘的鸣响,打印机复印机出纸的声音,翻动着纸张的声响夹杂在听得掌握的中文,和放任不亮的外语在方方面面办公里蔓延,他们唯恐还想早点忙碌了手上的作业,甚至未曾工夫已下来歇一停止或者相交谈两句。

  1. 防护dataservcie对充值订单表明底第一手改动写,只能通过api,不可知由此sql1

“OK,See
you.Bye!”随着陆洁以下SKYPE结束通话的按钮,她长长地伸了单懒腰,然后瘫坐于了椅子上,看正在上花板,也许是由长日子的干活,她底眼眸没有了过去的俊美,嘴里喃喃地说道:“一连通语音,不清楚那个了姐姐多少心血细胞,噢,我之老腰啊!”然后长长地舒了同等人口暴。

1.1. Order_id的安全取值,注入检测1

因于她身后的琳达瞟了其同肉眼,一边继续敲起在键盘,一边漫不经心地协商:“某人又当偷懒,今晚又打算睡办公室了!”陆洁听到这句话像从了兴奋剂一般,立马直起人体,向下一个客户产生了语音聊天的乞求。坐在其干的刘盼盼看这等同帐篷,嘴角微微上扬,轻轻地摆了舞狮,然后继续埋头自己之做事。

1.2. 判断是否有夫订单,否则CantFindRechargeOrderEx1

齐他们距离办公室,已经是昕某些,由于这些天下班时间经常不确定,他们干脆都搬至了合作社干的官宿舍。其实虽然是公家宿舍,条件也勘称酒店标间,而且比一般酒店的标间更清呢再也舒畅。刘盼盼同陆洁已在女生宿舍的302哀号房间。

1.3. 要订单状态产生管。throw new RechargeOrderStatErr(”
order.stat:” + order_id + “.” + stat);1

一如既往进家,陆洁就踢掉了下面上之高跟鞋,换上了舒适暖和的棉拖。然后踉踉跄跄地挪至沙发外,一下子趴倒在了沙发上,嘴里还直嚷嚷:“累很了,困死了,还自己的美容觉,鱼尾纹,抬头纹统统都滚蛋。”

1.4. 论断次订单是否处理了。。if
(finished(order_id))1

刘盼盼看了相同眼陆洁,感觉她应当没有还攀起来的意,忙说:“小祖宗,快办收拾,睡觉吧。”顺手将其自沙发上提溜了起,推进了卫生间。

1.5. 2

仅仅听见陆洁一边在盥洗室里洗洗洗着,一边隔在玻璃门对刘盼盼说:“盼盼,打工真累,不如我们啊像黄总与李总同好创业,雇几个像咱这么不行的小女儿给我们打工,这样我们便得轻松做老板了!”她单方面说正在,一边忙在吐出口受到剩下的牙膏泡沫。

1.6. 论断来程money是否和数据库内之同一FeeNotEquEx2

陆洁口中之黄总与李总就是雅丰的好业主——黄有春及李化伦。说于他们俩在临江市几无人不知无人不晓,他俩的创业故事吗都就让大家传为了佳话。

1.7. 论断订单修改状态,如果不为1 OrderFinishEx2

据说当年,黄有春以及李化伦于学的时候就吓爱人,同属电子商务专业。毕业后,在社会及寻找爬滚打多年,积攒了有些本钱和人脉,便都发矣创业之打算。谁知两丁说话了独家的想法后,一拍即合,一起成立了临江雅丰贸易有限公司,后来她们而拿事情发展及了贸易外之别样的世界,包括生产制作与服务业都发生参与。经过他们连年之拼命,雅丰贸易不断扩展,最终成为了今日的雅丰制业集团。现在人们要涉及雅丰集团即会指向黄李的创业史评论一番,他们非但玩二人口之贾才干,更加羡慕他们基本上年来互鼓励,相互帮忙的坚固情谊。甚至拿雅丰比作临江之金士顿,将黄总以及李总比作杜纪川和孙大卫。

1.8. Codce2

实则黄有春以及李化伦则当事业达到是平针对性默契的合作,但是他们在生活中的秉性也是大相径庭。黄有春性格内敛沉稳,不苟言笑。即使以企业间,员工迎面走过和外通,他呢太多便是点点头,难得见他脸上带带有微笑。李化伦则统统无同等,他吗人口风趣睿智,和供销社职工也常常打成一片,每个职工和外发问好,他还微笑回回。他的记忆力好像还专门好,只要是领取了同样糟糕的真名,他都能记得清清楚楚,一
一针对号落座。他专门喜年轻人,财务部的任主持和国际市场部的罗经理都是他手腕提拔起来的。他顶欣赏说的语句虽是:“公司之前途凡是你们的。”和外于协同,总为丁觉得到放松与为注重,他不曾一点深业主的气,所以在他前也得以重复自在和放宽。

 

刘盼盼任了陆洁的话,感觉其并且在幻想,微笑着说:“就您,那么累,还想当业主,老板可于我们职工忙多矣,你虽心安地作好你的邮件吧。”

1. 以防dataservcie对充值订单表明底直改动写,只能通过api,不可知由此sql

此时,陆洁已洗漱完,从清新间活动出来,身上裹着平等码宽松的睡衣,一边用手敲起在友好的下颌,一边白了刘盼盼同眼,故犯生气地游说:“哼,你而变通小瞧人,等自身出同样上发达了,你只是别老姐姐我从来不报您。”说罢一峰钻进了吃卷里,顺手将起一布置面膜贴于了脸上。

1.1. Order_id的安康取值,注入检测

String order_id =
(String) SqlSecuryCheckor.val(m.get(“order_id”));

 

“你本尚贴面膜?”刘盼盼好奇地问道。

1.2. 看清是否来其一订单,否则CantFindRechargeOrderEx

“是啊,这你不怕不知底了吧,人什么,啥时候还无克忘怀了美。好了,我如果敷面膜了,不跟您谈话了,晚安。”说罢便平躺下身体。

1.3. 设订单状态来管。throw new RechargeOrderStatErr(” order.stat:” + order_id + “.” + stat);

 

等刘盼盼洗漱完后,看到躺在铺上陆洁都呼呼大睡。那张面膜却仍旧留于脸颊,变得有点微微单调。刘盼盼摇了摇头,轻轻地援手她揭下面膜,心里想:“就如此,还要当老板。”一边关上了灯。

1.4. 判断次订单是否处理过。。if (finished(order_id))

return
“already_finish”;

 

要认清feeFromUrl  throw new SecuryEx(”
feeFromUrl is null”);

 

作者::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

看在302门卫的灯彻底熄灭了,坐于别克车里的甭管主持才依依不舍地用目光转移到了方向盘上,然后同脚油门,亮白的别克轿车快速烟消云散于了乌的夜间……

1.5.  

if(m.get(“feeFromUrl”)==null)

throw new SecuryEx(”
feeFromUrl is null”);

 

简书大学堂 无戒90龙训练营 第12首

1.6. 判定来程money是否跟数据库内的一样FeeNotEquEx

if(
money_frmDb.compareTo(money_frmUrl)!=0 )

throw new
FeeNotEquEx(” froom url
total_fee.dbfee:”+m.get(“feeFromUrl”).toString()+”-“+
 ormx.querySingleRow.get(“money”) );

 

1.7. 看清订单修改状态,如果不为1 OrderFinishEx

Object r = ormx.exe(m);

if ((Integer) r == 1)

{

String uid=ormx.querySingleRow.get(“uid”).toString();

BigDecimal money=(BigDecimal) ormx.querySingleRow.get(“money”);

accSvr.addAmount(uid, money);

return “ok”;

}

throw new OrderFinishEx(” order
finish ex”);

 

 

1.8. Codce

 

 

package com.attilax.order;

 

import java.math.BigDecimal;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.commons.lang3.StringUtils;

import org.apache.xmlbeans.impl.xb.xsdschema.Public;

 

import aaaCfg.IocX4casher;

import bsh.StringUtil;

 

import com.attilax.acc.Acc;

import com.attilax.acc.AccService;

//import
com.attilax.bet.AmountCalcService;

import com.attilax.data.DataStoreService;

import com.attilax.db.DBX;

import com.attilax.db.DbService;

import com.attilax.function.Function;

import com.attilax.io.filex;

import com.attilax.ioc.IocUtilV2;

import com.attilax.ioc.IocXq214;

import com.attilax.json.AtiJson;

import com.attilax.lang.FunctinImp;

import com.attilax.lang.Global;

import com.attilax.lang.SecuryEx;

import com.attilax.log.LogSvr;

import com.attilax.math.ADecimal;

import com.attilax.orm.AOrm;

import com.attilax.orm.AtiOrm;

import com.attilax.sms.SmsService;

import com.attilax.sql.SqlSecuryCheckor;

//import
com.attilax.sql.DbService;

import com.attilax.store.StoreService;

import com.attilax.user.User;

import com.attilax.user.UserService;

import com.attilax.util.DataMapper;

import com.attilax.web.ReqX;

import com.google.common.collect.Maps;

import com.google.inject.ImplementedBy;

import com.google.inject.Inject;

import com.google.inject.name.Named;

import com.attilax.trigger.Trigger_after;

 

/**

 *
v3 add refuse and accept
com.attilax.order.OrderService4jobus.refuse

 *

 *
com.attilax.order.RechargeOrderService

 *
@author attilax 2016年4月14日
下午12:36:44

 */

public class RechargeOrderService extends OrderService {

 

public static void main(String[] args) {

System.out.println(“–f”);

System.setProperty(“apptype”, “jobus”);

System.setProperty(“prj”, “jobus”);

RechargeOrderService srv = IocUtilV2

.getBean(RechargeOrderService.class);

 

//
System.out.println(srv.refuse(“0301_152839_178”));

//
System.out.println(srv.accept(“0301_152839_178”));

 

Map m = Maps.newLinkedHashMap();

m.put(“$table”, “orderv2”);

m.put(“order_id”, “198201”);

//

String finishMsg = (String) srv.finish(m);

System.out.println(finishMsg);

 

System.out.println(“–f”);

 

}

 

@Inject

DataStoreService storeSvr;

 

@Inject

UserService userSvr;

@Inject

AccService accSvr;

@Inject

AmountCalcService amoutCalcSvr;

@Inject

private LogSvr logSvr;

 

//
@Inject @Named(“order_service_dataMaper”)

//
@ImplementedBy(FunctinImp.class) should ostion in
interface java hto..

//
public Function dataMaper;

@Inject

public Trigger_after trig_bef;

@Inject

public Trigger_after trig_aft;

 

public int insert(HttpServletRequest req) {

return insert(ReqX.toMap(req));

}

 

public int insert(Map order) {

if (userSvr == null)

throw new RuntimeException(“#userSvr_is_null”);

if (accSvr == null)

throw new RuntimeException(“#accSvr_is_null”);

if (amoutCalcSvr == null)

throw new RuntimeException(“#amoutCalcSvr_is_null”);

 

if (userSvr.isNotLogin()) {

throw new RuntimeException(” not
login 没登录,请先刊登录..#not_login”);

}

 

User u = userSvr.getLoginUser();

Acc a = accSvr.getAcc(u.id);

 

BigDecimal needMoney = amoutCalcSvr.calc(order);

 

if (new ADecimal(needMoney).biggerEqualThan(a.amount))

throw new RuntimeException(


 amount not enough 金额不足够 ..#amount_not_enough “);

 

//
/…insert

order.put(“$op”, “insert”);

order.put(“order_id”, filex.getUUidName());

order.put(“order_money”, needMoney);

trig_bef.apply(order);

 

storeSvr.insert(order);

 

int rzt = accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());

logSvr.log(order);

return rzt;

 

}

 

@Inject

AtiOrm ormx;

 

/**

 *
for req

attilax    2016年4月20日
 下午4:11:03

 *
@return

 */

public Object finish() 

{

HttpServletRequest req=Global.req.get();

return finish(ReqX.toMap(req));

}

public Object finish(Map m) {

//
if(StringUtils.isEmpty((String)m.get(“$where”)) )

//
throw new RuntimeException(“no $where contion..”);

String order_id = (StringSqlSecuryCheckor.val(m.get(“order_id”));

if (finished(order_id))

return “already_finish”;

//——-check
money equ

if(m.get(“feeFromUrl”)==null)

throw new SecuryEx(”
feeFromUrl is null”);

BigDecimal money_frmDb=(BigDecimal) ormx.querySingleRow.get(“money”);

BigDecimal money_frmUrl=new BigDecimal( m.get(“feeFromUrl”).toString());

if( money_frmDb.compareTo(money_frmUrl)!=0 )

throw new FeeNotEquEx(” froom
url total_fee.dbfee:”+m.get(“feeFromUrl”).toString()+”-“+  ormx.querySingleRow.get(“money”) );

m.put(“stat”, 1);

 

String where = ”
order_id=’$order_id$'”.replace(“$order_id$”,

SqlSecuryCheckor.val(m.get(“order_id”)));

m.put(“$where”, where);

m.remove(“order_id”);

//
m.put(“stat”,1);

ormx.m = m;

ormx.setOp(ormx.update);

ormx.setTable(“orderv2”);

 

Object r = ormx.exe(m);

if ((Integer) r == 1)

{

String uid=ormx.querySingleRow.get(“uid”).toString();

BigDecimal money=(BigDecimal) ormx.querySingleRow.get(“money”);

accSvr.addAmount(uid, money);

return “ok”;

}

throw new OrderFinishEx(” order
finish ex”);

 

}

 

/**

attilax    2016年4月21日
 下午9:29:02

 *
@param string

 *
@return

 */

private Exception FeeNotEquEx(String string) {

//
TODO Auto-generated
method stub

return null;

}

 

private boolean finished(String order_id) {

String s = “select
* from orderv2 where order_id='” + order_id + “‘”;

Map m = ormx.tabletype(“sql”).querySingleRow(s).querySingleRow;

if (m == null)

throw new CantFindRechargeOrder(“order
id:” + order_id);

String stat = m.get(“stat”).toString();

if (stat.equals(“1”))

return true;

if (stat.equals(“0”))

return false;

throw new RechargeOrderStatErr(”
order.stat:” + order_id + “.” + stat);

//
return m.get(“stat”).toString().equals(“1”);

//
ormx.tabletype(“sql”).exist(s).existRzt;

//
false;

}

 

public List<Map> query(Map order) {

 

if (userSvr.isNotLogin()) {

throw new RuntimeException(” not
login 没登录,请先发表录..#not_login”);

}

User u = userSvr.getLoginUser();

 

return null;

 

//
/…insert

//
return accSvr.reduceAmount(u.id.toString(),
needMoney.doubleValue());

 

}

 

@Deprecated

public String query2json(Map order) {

 

return AtiJson.toJson(query(order));

 

//
/…insert

//
return accSvr.reduceAmount(u.id.toString(),
needMoney.doubleValue());

 

}

 

}

 

Leave a Comment.