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 的字段,数据类型保持绝对一致;多表关联查询时,保证被关联的字段需要有索引。
  • 相关阅读:
    HDU 1004 Let the Balloon Rise【STL<map>】
    UVA 1030
    UVA 10881
    POJ 3154 Graveyard【多解,数论,贪心】
    浅谈Notepad++选中行操作+快捷键+使用技巧【超详解】
    COGS 68. [NOIP2005] 采药【01背包复习】
    [phomeflashpic]怎样调用帝国CMS图片幻灯效果
    微信认证新增公对公账户银行卡转账支付审核费用 缩减认证审核时长
    微信公众平台回复过了怎么不能再次回复?亲们要注意查看"公众平台回复用户消息时限变更通知"的公告啊
    新版微信终于支持消息撤回了 微信零钱也能转账了[微信5.3.1.16更新]
  • 原文地址:https://www.cnblogs.com/xiaoao/p/12895640.html
Copyright © 2011-2022 走看看