zoukankan      html  css  js  c++  java
  • Java开发手册之安全规约

    1.用户敏感数据禁止直接展示,必须对展示数据进行脱敏。例如手机号、银行卡号等,中间要用*隐藏。

    2.发贴、评论、发送即时消息等用户生成内容的场景必须实现防刷、文本内容违禁词过滤等风控策略,一般是用验证码来拦截。

    3.禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。需要将敏感信息隐藏,并且将程序中的默认的字段转换为用户看得懂的实际字段。

    4.MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。
    5.小数类型为 decimal,禁止使用 float 和 double。说明:在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。
    6.合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。无符号值可以避免误存负数,且扩大了表示范围。
    7.创建索引时避免有如下极端误解:
    1) 索引宁滥勿缺。认为一个查询就需要建一个索引。
    2) 吝啬索引的创建。认为索引会消耗空间、严重拖慢记录的更新以及行的新增速度。
    3) 抵制惟一索引。认为惟一索引一律需要在应用层通过“先查后插”方式解决。
    8.delete语句和select语句有所不同,如果用别名,需要将别名写在from前面。比如delete from student t where t.id=123,会报错。可以改成delete t from student t where t.id =123
    9.防止因字段类型不同造成的隐式转换,导致索引失效。
    10.页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。说明:索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。
    11.如果有 order by 的场景,请注意利用索引的有序性。order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现 file_sort 的情况,影响查询性能。
    12.业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。就算业务上控制的很好,不可能产生重复数据,但是最终还是会有重复数据的产生,所以要在数据库层面掐死这一条路。
    13.超过三个表禁止 join。需要 join 的字段,数据类型保持绝对一致;多表关联查询时,保证被关联的字段需要有索引。
  • 相关阅读:
    Asp.Net选择TreeView前面的复选框引起回发
    Asp.Net自动发送邮件代码
    Asp.Net类型转换类(通用类)
    Eclipse 快捷键
    结对项目开发之电梯调度问题
    输出文章中几个最高频率单词和次数
    求整数数组中和最大的子数组的和
    Android定位功能(二)
    分布式拒绝服务攻击(DDoS)原理及防范
    定义Profile用户文件详解
  • 原文地址:https://www.cnblogs.com/xiaoao/p/12895640.html
Copyright © 2011-2022 走看看