转载自 阿里巴巴对Java编程【安全规约】的规约

安全规约


1. 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。

说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。

2. 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。

说明:查看个人手机号码会显示成:158****9119,隐藏中间 4 位,防止隐私泄露。

3. 【强制】用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入,禁止字符串拼接 SQL 访问数据库。

4. 【强制】用户请求传入的任何参数必须做有效性验证。

说明:忽略参数校验可能导致:

  page size 过大导致内存溢出

  恶意 order by 导致数据库慢查询

  任意重定向

  SQL 注入

  反序列化注入

  正则输入源串拒绝服务 ReDoS

说明:Java 代码用正则来验证客户端的输入,有些正则写法验证普通用户输入没有问题,但是如果攻击人员使用的是特殊构造的字符串来验证,有可能导致死循环的结果。

5. 【强制】禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。

6. 【强制】表单、 AJAX 提交必须执行 CSRF 安全过滤。

说明: CSRF(Cross - site request forgery) 跨站请求伪造是一类常见编程漏洞。对于存在CSRF 漏洞的应用/网站,攻击者可以事先构造好 URL ,只要受害者用户一访问,后台便在用户不知情情况下对数据库中用户参数进行相应修改。

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

说明:如注册时发送验证码到手机,如果没有限制次数和频率,那么可以利用此功能骚扰到其它用户,并造成短信平台资源浪费。

8. 【推荐】发贴、评论、发送即时消息等用户生成内容的场景必须实现防刷、文本内容违禁词过滤等风控策略。

阿里巴巴对Java编程【安全规约】的规约相关推荐

  1. 阿里巴巴对Java编程【注释规约】的规约

    转载自 阿里巴巴对Java编程[注释规约]的规约 注释规约 1. [强制]类.类属性.类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用//  xxx 方式. 说明:在 ID ...

  2. 阿里巴巴对Java编程【控制语句】的规约

    转载自 阿里巴巴对Java编程[控制语句]的规约 控制语句 1. [强制]在一个 switch 块内,每个 case 要么通过 break / return 等来终止,要么注释说明程序将继续执行到哪一 ...

  3. 阿里巴巴对Java编程【并发处理】的规约

    转载自 阿里巴巴对Java编程[并发处理]的规约 并发处理 1. [强制]获取单例对象需要保证线程安全,其中的方法也要保证线程安全. 说明:资源驱动类.工具类.单例工厂类都需要注意. 2. [强制]创 ...

  4. 阿里巴巴对Java编程【集合处理】的规约

    转载自 阿里巴巴对Java编程[集合处理]的规约 集合处理 1. [强制]关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals ,就必须重写 hashCode ...

  5. 阿里巴巴对Java编程【OOP规约】的规约

    转载自 阿里巴巴对Java编程[OOP规约]的规约 OOP规约 1. [强制]避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可. 2. [强制]所有的 ...

  6. 阿里巴巴对Java编程【常量定义】的规约

    转载自 阿里巴巴对Java编程[常量定义]的规约 常量定义 1. [强制]不允许任何魔法值 ( 即未经定义的常量 ) 直接出现在代码中. 反例: String key  = " Id # t ...

  7. 阿里巴巴对Java编程【代码格式】的规约

    转载自 阿里巴巴对Java编程[代码格式]的规约 代码格式 1. [强制]大括号的使用约定.如果是大括号内为空,则简洁地写成{}即可,不需要换行 : 如果是非空代码块则: 1 ) 左大括号前不换行. ...

  8. 阿里巴巴对Java编程【命名风格】的规约

    转载自 阿里巴巴对Java编程[命名风格]的规约 命名风格 1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $Obje ...

  9. 阿里巴巴对Java编程【应用结构】的规约

    转载自 阿里巴巴对Java编程[应用结构]的规约 应用分层 1. [推荐]图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web 层,也可以直接依赖于 Service 层,依此 ...

  10. 阿里巴巴对Java编程【Mysql】的规约

    转载自 阿里巴巴对Java编程[Mysql]的规约 建表规约 1. [强制]表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是,0 ...

最新文章

  1. 练习10-1 使用递归函数计算1到n之和 (10 分)
  2. Windows下安装Z3的Python3版
  3. ThunderSoft Flash to HTML5中文版
  4. Dataframe花样切片~(Python)
  5. rocketmq订阅多个主题_RocketMQ 的消息模型
  6. RequiredFieldValidator 根据group组来触发验证
  7. 计算机视觉三大顶级会议ICCV,CVPR,ECCV网址
  8. 互联网基础知识------OSI七层网络模型梗概
  9. 使用redis做缓存,遇到Could not return the resource to the pool异常怎么办呐!
  10. spring——autowire自动注入
  11. 【健康生活】Google、百度之间的选择
  12. 别怀疑,孩子在家里也能学编程!
  13. java base64字符 转图片_JAVA实现图片与base64字符串之间的转换详解
  14. L1-022 奇偶分家 (10 分) — 团体程序设计天梯赛
  15. 向量范数(Norms)之间关系的证明
  16. 计算机中存在旧版本的mf驱动程序,mf驱动程序安装指南.pdf
  17. vmware虚拟机重装后本机没虚拟网卡解决方案及虚拟机的三种网络连接方式详解
  18. FM知名芯片商芯略总裁因侵权被警方拘留
  19. 【Mo 人工智能技术博客】利用Logistic函数和LSTM分析疫情数据
  20. 安卓DataBinding问题:ActivityMainBinding、FragmentHomeBinding类不存在且无法自动导入

热门文章

  1. 高等数学下-赵立军-北京大学出版社-题解-练习12.3
  2. [剑指offer]面试题8:旋转数组的最小数字
  3. Honest Coach CodeForces - 1360B(简单贪心)
  4. 连接mysql数据库_解决Navicat连接MySQL数据库报错问题
  5. 高级数据结构---并查集
  6. P3899 [湖南集训]谈笑风生(线段树合并)
  7. P3355 骑士共存问题(网络流)
  8. P3205 [HNOI2010]合唱队
  9. Codeforces Round #712 (Div. 2)
  10. ssl1127-方程的解数【HASH,dfs】