阿里java开发手册学习笔记(四、 安全规约)
-
隶属于用户个人的页面或者功能必须进行权限控制校验。
-
用户敏感数据禁止直接展示,必须对展示数据进行脱敏。中国大陆个人手机号码显示为:137****0969,隐藏中间 4 位,防止隐私泄露
-
用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入,禁止字符串拼接 SQL 访问数据库。
-
用户请求传入的任何参数必须做有效性验证。
忽略参数校验可能导致:
⚫ page size 过大导致内存溢出
⚫ 恶意 order by 导致数据库慢查询
⚫ 任意重定向
⚫ SQL 注入
⚫ 反序列化注入
⚫ 正则输入源串拒绝服务 ReDoS -
禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。
-
表单、AJAX 提交必须执行 CSRF 安全验证。
-
在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放的机制,如数量限制、疲劳度控制、验证码校验,避免被滥刷而导致资损。
-
发贴、评论、发送即时消息等用户生成内容的场景必须实现防刷、文本内容违禁词过滤等风控策略