《阿里巴巴开发手册》读书笔记-安全规约
原创
©著作权归作者所有:来自51CTO博客作者攻城狮Chova的原创作品,请联系作者获取转载授权,否则将追究法律责任
安全规约
- 隶属于用户个人的页面或者功能必须进行权限控制校验
- 防止没有做水平校验接可以随意访问,修改,删除别人的数据
- 用户敏感数据禁止直接展示,必须对展示数据进行脱敏处理
- 用户输入的SQL参数严格使用参数绑定或者MATADATA字段限定,防止SQL注入,禁止字符串拼接SQL访问数据库
-
用户传入的任何参数必须做有效性验证:
- 忽略参数校验会导致:
-
page size过大导致内存溢出
- 恶意order by导致数据库慢查询
- 任意重定向
- SQL注入
- 反序列化注入
- 正则输入源串拒绝服务ReDos
- Java代码使用正则来验证客户端的输入:
- 有些正则普通用户输入没有问题
- 如果攻击人员使用的是特殊构造的字符串来验证,有可能导致死循环的结果
- 禁止向HTML页面输出未经安全过滤或未正确转义的用户数据
- 表单,Ajax提交必须执行CSRF安全验证
- CSRF(Cross-site request forgery)跨站请求伪造是常见的安全漏洞
- 对于存在CSRF漏洞的网站或者应用,攻击者可以事先构造好URL,只要受害者用户一访问,后台便在用户不知情的情况下对数据库中的用户参数进行修改
- 在使用平台资源,比如短信,邮件,电话,下单,支付,必须实现防重放的机制,例如数量限制,疲劳度控制,验证码校验,避免被滥刷而导致资源损耗
- 比如注册时发送验证码到手机,如果没有限制次数和频率,那么就可以利用此功能骚扰其它用户,导致短信平台资源浪费
- 发帖,评论,发送即时消息等用户生成内容的场景必须实现防刷,文本内容违禁词过滤等风控策略