Java开发手册37/59四、安全规约1.【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容。2.【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。说明:中国大陆个人手机号码显示:139****1219,隐藏中间4位,防止隐私泄露。3.【强制】用户输入的SQL参数严格使用参数绑定或者METADATA字段值限定,防止SQL注入,禁止字符串拼接SQL访问数据库。反例:某系统签名大量被恶意修改,即是因为对于危险字符#--没有进行转义,导致数据库更新时,where后边的信息被注释掉,对全库进行更新。4.【强制】用户请求传入的任何参数必须做有效性验证。说明:忽略参数校验可能导致:⚫page size过大导致内存溢出⚫恶意order by导致数据库慢查询⚫缓存击穿⚫SSRF⚫任意重定向⚫SQL注入,Shell注入,反序列化注入⚫正则输入源串拒绝服务ReDoSJava代码用正则来验证客户端的输入,有些正则写法验证普通用户输入没有问题,但是如果攻击人员使用的是特殊构造的字符串来验证,有可能导致死循环的