FDP做为一个成熟的平台,在安全方面做了充分的工作。
-------以下安全策略已由FDP实现------
密码的加强
使用sha1算法 + slat(盐) ,来防止防止碰撞猜出密码
使用SystemService.entryptPassword()生成安全的密码,生成随机的16位salt并经过1024次 sha - 1 hash
保护cookie
使用HTTPonly状态的cookie,使js无法读出cookie
CookieUtils setCookie 使用HTTPonly的Cookie
智能验证码
登录失败3次后,要求输入验证码
N秒内连续发X篇文章,要求输入验证码(未实现)
权限验证
controller每一个方法都有服务端权限验证
表单验证
前端使用js做表单验证,用户体验好。
服务端再做一次相同逻辑的的表单验证,安全性高。
请看: FDP的表单验证介绍
防止SQL注入
使用preparedstatement,用?占用符,禁拼接SQL
防止XSS攻击
- 对文本框防止xss
- 对于富文本编辑器防止xss
请看: 防止XSS攻击
属主检查
修改、删除数据时,做属主检查。防止跨会员删除数据
多用户平台,在删除记录时,要检查这条记录的主人是不是当前用户,是才可以删除,防止人为修改url中的ID参数删除其它用户的记录。
请在具体的controller中编码实现。
防止表单重复提交
网速较慢时,用户可以连续点击“保存”按钮:解决方案。1按钮变灰,2 使用token
按F5刷新页面会导致前面提交过的表单再一次提交,使用重定向来解决。
请在具体的controller中编码实现。
图片访问控制
普通图片,都是可以匿名访问的(如产品图片),只要知道图片的url,就可访问图片。
由于业务需要,系统接收了用户上传的身份证、营业执照的图片,这些图片需要保密,不能泄漏到互联网上。
这里要需要访问控制了。FDP已提供解决方案: 访问控制
请在具体的业务中编码实现。