bcom 遇到的那些问题

1、访问错误页面不要暴露nginx 

解决办法配置nginx 错误页面

#2# 软件的版本,nginx 使用最新的稳定版本之前用1.8 容易被攻击

2、上传的图片校验

最开始没有想到修改文件后缀的情况,所以如果修改了文件后缀是上传成功的。

文件名称不要用时间戳,随机字符串比较好。后台只返回文件名,前台展示采取拼接的方式

解决办法:

/** 校验是否是jpg 或者png 的图片 是返回true */
    public static boolean checkImgFile(MultipartFile tempMultipartFile) throws IOException {
        // 过滤非jpg,png格式的文件
        if (!(tempMultipartFile.getContentType().toLowerCase().equals("image/jpg")
                || tempMultipartFile.getContentType().toLowerCase().equals("image/jpeg")
                || tempMultipartFile.getContentType().toLowerCase().equals("image/png"))) {
            return false;
        } else {
            
            ImageInputStream iis = ImageIO.createImageInputStream(tempMultipartFile.getInputStream());
            Iterator iter = ImageIO.getImageReaders(iis);
            if (!iter.hasNext()) {//文件不是图片 
                return false;
            }
            
            BufferedImage bi = ImageIO.read(tempMultipartFile.getInputStream());
            if(null == bi){
                return false;
            }
            return true;
        }
    }
View Code

3、参数校验

我们前端往往都做了参数校验,后台也应该做参数校验。

没有相应的参数,不能够保存。如果有大小的后台也要校验,

 比如等级开始的积分不能大于结束的积分

4、权限问题

1.接口的调用必须使用token

2.有些接口是需要传入用户ID的 

token 和用户id 保持一致

这个时候需要校验传入的token(表示的用户)与实际操作的用户(传入的userId)要一致

否则就是传入了A 的token userId 是B的,修改密码会出现

解决办法就是获取请求参数,如果传入了userId 那么就要比较token

5、发帖bbs 使用敏感词过滤工具类

6、搭建测试环境的过程要记录

安装了哪些服务,什么版本,看的什么文章要记录。

因为后面生产环境也会需要

7、发短信接口短信不要在response里返回,对ip做次数限制

8、细节的问题

修改密码时候新密码也要进行规则校验

手机号做简单正则校验,是11位数字,1开头就可以。、、

pentest 报告我并没有详细看。。给自己耽误了不少时间

原文地址:https://www.cnblogs.com/lyon91/p/10136981.html