11 2020 档案
摘要:数值越界是需要引起重视的问题,后端服务没有严格检验请求字段的取值范围,则可能引发严重的后果。 事故 例如用户购买礼物,礼物单价为20金币。有用户购买了1073741825个礼物,却只需要花费20金币,这是为何? 原因 原来系统中设定的购买数量和金币均采用了uint32,uint32的取值范围为[0,
阅读全文
摘要:接口的实现 Go语言中的接口变量存储了两项内容:1.当前值的类型描述,2.存储当前值。 第一部分type是接口的itable,存储接口的类型和一系列函数指针。这里的函数指针列表与接口中的函数定义一致,而不会包括类型自身的其它函数。 第二部分data存储接口的实际数据 接口存储的优化 当声明的接口为空
阅读全文
摘要:MySQL中的事务四要素 原子性(Atomicity):要么全部完成,要么全部不完成; 一致性(Consistency):事务执行前后都保持数据的完整性约束,数据的中间状态不可见; 隔离性(Isolation):事务之间不能相互影响,可以设置不同的隔离级别; 持久性(Durability):事务提交
阅读全文