智能机器人演练项目总结,好的实现(一)

参与到一个新的客户经营项目里面,使用AI机器人模拟客户,练习和客户交流技巧,提高和客户交流成功率。项目里面有一些解决方案,觉得不错。记录一下,后端使用Python开发的

(一)后端统一对接口返回字段加签、验签,避免数据被随意操作。

背景:用户查询了列表数据,然后可以修改、删除数据,一般前端把数据id,传给后端,后端根据id,操作数据。攻击者可以修改id,删除数据。

解决方案:后端对id字段加密,id和加密后的字段都返回给前端。前端再把id和加密后的字段回传给后端。后端校验id和加密字段是否匹配,如果匹配,执行对应操作。不匹配,拒绝操作。

代码实现:定义注解sign,传入需要加密的字段,如@sign("id"),查找请求里面的字段,加密。加密后,返给前端。前端把加密后的字段,放到http的header字段,回传给后端。后端再定义注解custom,校验加密字段@custom("id)。需要加签、验签的字段,直接使用注解即可。提高业务开发效率,不用重复开发,同一份代码逻辑,方便维护。

(二)自定义事务注解

参考了Java spring框架事务注解@Transactional,自定义注解,没有异常,提交事务,有异常,回滚事务。使用事务的地方,直接使用注解即可,提高开发效率

(三)自定义注解,拦截数据库操作,记录数据库操作

需要上报数据库操作记录,给运维平台。对每个请求链路进行追踪,自定义注解,拦截数据库操作,上报平台。系统使用的Fastapi和sqlalchemy框架,继承sqlalchemy的session接口,拦截session.execute()方法,上报数据库操作。

拦截数据库操作,不用每个地方都写重复代码
这几个方案,都把重复逻辑抽出来了。单独的地方处理,提高开发效率和维护成本。

 

posted on 2025-12-28 18:22  luckygxf  阅读(3)  评论(0)    收藏  举报

导航