web后台开发安全事项

2019-07-25  本文已影响0人  ToufuDrago_c53f

一、安全意识

    不要把代码上传到github或写到博客。

二、输入验证

    1.处理数据之前,先验证收到的数据是否符合业务逻辑,不要相信来自前端的数据。

    2.防sql注入。后台使用mybatis传值时使用#{}可以有效避免sql注入,因为#{}会将传入参数作为字符串处理。

三、输出

    减少不必要的信息输出。别一个请求把不相关的大量信息返回。

四、身份和密码管理

    1.身份验证的失败信息应该避免过于明确(账号或密码错误,而不应该指出账号不存在、密码错误)。

    2.三次登陆失败时要求输入验证码,或一段时间后才能再次尝试。

    3.找回密码等需要用到手机短信、邮件的操作,每次需要有1分钟的间隔,且请求中要部署只生效一次的token,避免“短信炸弹”。

    4.密码加密不能只用md5,必须md5 + salt。前端可以这样加密 : MD5(MD5(密码) + 验证码)(数据库保存了MD5(密码)  )。

    5.只用post方法传输用户凭证。

五、访问控制

    1.网站没有对读取文件的路径进行限制,导致可通过../进行跳转读取服务器上的任意文件。对path参数进行过滤依次过滤”.”、”..”、”/”、”\”等字符,或对下载目录进行限制,只能下载指定目录下的文件,或将下载文件的路径存到数据库,用一个id字段对应该文件。

    2.对用户请求的信息进行身份判断。如通过id查看用户的购物订单,要验证请求的id与用户账号的id是否一致。

    3.设计阶段做好授权管理。

六、日志

    必须要有日志。

    1.限制只有授权用户才能访问日志。

    2.不在日志存储敏感信息,如会话标识、密码。

    3.避免显示调试或堆栈跟踪信息。

七、数据保护

    1.不以明文方式存储密码。

    2.不在get请求中传递敏感参数。

    3.敏感数据要加密脱敏处理,包括密码,身份证,手机号等。如135****2198。

    4.敏感数据使用加密连接(HTTPS)进行传输。

八、上传文件

    1.使用白名单,检查上传文件扩展名白名单,不属于白名单内的不允许上传。

    2.上传文件的目录必须是http请求无法直接访问到的。如果需要访问的,必须上传到其他(和web服务器不同的)域名下,并设置该目录为不解析jsp等脚本语言的目录。

    3.上传文件保存的文件名和目录名由系统根据时间生成,不允许用户自定义。

    4.图片上传要通过处理(缩略图、水印等),无异常才能保存到服务器。

九、第三方插件

    引用第三方插件时,搜索一下所用的版本是否有漏洞。

上一篇下一篇

猜你喜欢

热点阅读