阿里java开发手册阅读笔记5
安全规约要求:
1.隶属于用户个人的页面或者功能必须进行权限控制校验。
以防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容。
2.
用户敏感数据禁止直接展示,必须对展示数据进行脱敏。
比如身份证号和手机号中间几位展示****
3.
用户请求传入的任何参数必须做有效性验证——不让用户犯简单的错误!
4.
URL 外部重定向传入的目标地址必须执行白名单过滤
关于数据库:
1.表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
注意:
MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。
2.
小数类型为 decimal,禁止使用 float 和 double。
说明:在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的结果。如果存储的数据范围超过 decimal 的范围,可以将数据拆成整数和小数并分开存储。
3.
4.
超过三个表禁止 join。需要 join 的字段,数据类型保持绝对一致;多表关联查询时,保证被关联的字段需要有索引。