阿里巴巴 Java 开发手册--学习(三)

时间:2022-06-30 21:52:36

安全规约

         1、用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入,禁止字符串拼接 SQL 访问数据    库

    2、用户请求传入的任何参数必须做有效性验证。

    3、表单、 AJAX 提交必须执行 CSRF 安全过滤。

    4、在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放限制,如数量限制、疲劳度控制、验证    码校验,避免被滥刷、资损。

MySQL数据库

    mysql数据库之建表规约

         1、表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是0表示否) 

    2、表名、字段名必须使用小写字母或数字 , 禁止出现数字开头,禁止两个下划线中间只出现数字。

    3、小数类型为 decimal ,禁止使用 float 和 double 。 float 和 double 在存储的时候,存在精度损失的问题,很可    能在值的比较时,得到不正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存    储。

    4、单表行数超过 500 万行或者单表容量超过 2 GB ,才推荐进行分库分表。

mysql数据库之索引规约

         1、业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。

    2、超过三个表禁止 join 。需要 join 的字段,数据类型必须绝对一致 ; 多表关联查询时,保证被关联的字段需要有索    引。

    3、建组合索引的时候,区分度最高的在最左边。

mysql数据库之sql语句

         1、不要使用 count( 列名 ) 或 count( 常量 ) 来替代 count( * ) , count( * ) 是 SQL 92 定义的标准统计行数的    语法,跟数据库无关,跟 NULL 和非 NULL 无关。

    2、使用 ISNULL() 来判断是否为 NULL 值。 NULL 与任何值的直接比较都为 NULL。

    3、禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。

mysql数据库之ORM映射

         1、在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。

    2、sql. xml 配置参数使用:#{},# param # 不要使用${} 此种方式容易出现 SQL 注入。