当前位置: 首页 > wzjs >正文

网站权重对优化的作用推广app平台有哪些

网站权重对优化的作用,推广app平台有哪些,windows系统怎么做ppt下载网站,网站建设和网络推广外包服务商文章目录 1. 异常信息泄露修复建议不推荐用法推荐用法 2. 文件上传漏洞错误示例(缺乏校验)安全示例(含格式/扩展名校验) 3. SQL注入漏洞(MyBatis ${})示例修复建议 4. 生成组件间接依赖生成依赖树建议 5. 间…

文章目录

    • 1. 异常信息泄露
      • 修复建议
      • 不推荐用法
      • 推荐用法
    • 2. 文件上传漏洞
      • 错误示例(缺乏校验)
      • 安全示例(含格式/扩展名校验)
    • 3. SQL注入漏洞(MyBatis ${})
      • 示例
      • 修复建议
    • 4. 生成组件间接依赖
      • 生成依赖树
      • 建议
    • 5. 间接依赖组件的漏洞
      • 什么是间接依赖
      • 后端修复1
      • 后端修复2
      • 前端修复1
      • 前端修复2
    • 6. XSS(跨站脚本攻击)
      • 错误示例(存在风险)
      • 安全示例(自动转义)
      • 修复建议
    • 7. 接口未鉴权
      • 修复建议
    • 8. 路径遍历漏洞
      • 错误示例(存在风险)
      • 安全示例
      • 修复建议
    • 9. 配置文件泄露
    • 10. 重定向漏洞(Open Redirect)
      • 错误示例(未校验)
      • 安全示例(加白名单)
      • 修复建议

在这里插入图片描述

1. 异常信息泄露

修复建议

printStackTrace 会将栈信息直接打印,因此 printStackTrace() 应替换为日志记录,不应在生产环境中输出到控制台或页面。

不推荐用法

try {// 某些逻辑
} catch (Exception e) {e.printStackTrace(); // 不安全:会将栈信息直接打印
}

推荐用法

private static final Logger logger = LoggerFactory.getLogger(MyClass.class);try {// 某些逻辑
} catch (Exception e) {logger.error("异常发生:{}", e.getMessage(), e); // 日志记录,不暴露到终端
}

2. 文件上传漏洞

扫描工具检测到 MultipartFile 参数时,常误报文件上传漏洞。关键在于是否存在有效的校验逻辑。

错误示例(缺乏校验)

@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {file.transferTo(new File("/tmp/" + file.getOriginalFilename())); // 无校验,风险高return "ok";
}

安全示例(含格式/扩展名校验)

@PostMapping("/upload")
public String secureUpload(@RequestParam("file") MultipartFile file) throws IOException {String filename = file.getOriginalFilename();if (filename == null || !filename.endsWith(".jpg")) {return "非法文件类型";}File dest = new File("/safe/path/" + filename);file.transferTo(dest);return "上传成功";
}

3. SQL注入漏洞(MyBatis ${})

MyBatis 中 ${} 占位符在拼接字段名时容易被误判为 SQL 注入。若内容为非字符串且来源受控,通常是误报。

示例

<select id="getUserByField" resultType="User">SELECT * FROM user WHERE ${field} = #{value}
</select>

通过 Java 传参,字段受控:

Map<String, Object> param = new HashMap<>();
param.put("field", "username"); // 固定字段名,非用户可控
param.put("value", "alice");
sqlSession.selectList("getUserByField", param);

修复建议

  • 若确实拼接字段名,确保来源受控;
  • 避免拼接用户输入为字段名;
  • 尽可能使用 #{} 预编译语法。

4. 生成组件间接依赖

生成依赖树

后端(Maven):
对于maven构建的Java项目,在项目根目录执行以下命令,生成一个Backendtree.md文件,其中包含Java项目的直接和间接依赖的组件名称和版本号。

mvn dependency:tree > Backendtree.md

前端(npm):
对于前端项目,可在项目根目录执行以下命令,生成一个FrontendTree.md文件,其中包含前端组件的直接和间接依赖的名称和版本号。

npm ll --depth=5 > FrontendTree.md

示例:

[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-core:jar:2.9.6:compile

建议

  • 对照报告中的漏洞组件版本与 dependency:tree 文件,确认是否真实依赖;
  • 若确认为误报,可在工具中进行误报标注或添加白名单。

5. 间接依赖组件的漏洞

什么是间接依赖

在项目中,有两类依赖:

  • 直接依赖:你在 pom.xml 或 package.json 中手动写明的依赖;

  • 间接依赖:你的直接依赖又依赖的组件,即“依赖的依赖”。

假设你项目依赖了组件 A,但组件 A 又依赖了一个有漏洞的老版本组件 B:1.0.0,这时你项目其实是间接使用了组件 B:1.0.0,并可能被扫描工具提示漏洞。

若漏洞来源于间接依赖组件,可通过提升为直接依赖来覆盖旧版本。

后端修复1

对于直接依赖组件,可在 Java - pom.xml 显式声明新版本:

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.4.2</version>
</dependency>

后端修复2

对于间接依赖组件,可以在 pom.xml 里手动添加一个安全版本的 B 组件(比如 B:2.0.0),即使代码中并没有直接使用它。

Maven 构建时,会优先使用你直接声明的版本 B:2.0.0,从而覆盖掉旧的间接依赖版本 B:1.0.0,达到漏洞修复目的。

前端修复1

前端 - npm 升级组件:

npm uninstall lodash
npm install lodash@4.17.21

前端修复2

前端强制锁版本:

"resolutions": {"lodash": "4.17.21"
}

6. XSS(跨站脚本攻击)

扫描工具在检测到返回 HTML 内容时,若包含用户输入的字段,常会报出 XSS 漏洞。但若使用了模板引擎自动转义或框架默认做了输出编码处理,往往属于误报。

错误示例(存在风险)

@GetMapping("/greet")
public String greet(@RequestParam String name) {return "<html><body>Hello " + name + "</body></html>"; // 无任何转义,存在XSS风险
}

安全示例(自动转义)

<!-- Thymeleaf模板 -->
<p th:text="'Hello ' + ${name}"></p> <!-- 自动 HTML 转义 -->

修复建议

  • 后端返回数据时避免拼接 HTML,使用前端渲染;
  • 模板引擎需确保开启自动转义;
  • 若使用 JSON API,确保前端做好输入编码、输出渲染安全。

7. 接口未鉴权

工具在扫描 API 接口时,若未发现显式鉴权代码或注解(如 @PreAuthorize@RequiresPermissions),可能误报为“接口未鉴权”。但实际很多接口已在网关、拦截器层进行了统一校验。

@GetMapping("/user/info")
public User getInfo() {return userService.getCurrentUser(); // 无注解,工具可能误报
}

修复建议

在接口方法上增加显式鉴权注解,增强工具识别度:

@PreAuthorize("hasRole('USER')")
@GetMapping("/user/info")
public User getInfo() {return userService.getCurrentUser();
}

或者,在安全配置类中集中定义权限策略,并在文档中说明统一鉴权逻辑。

8. 路径遍历漏洞

扫描工具若检测到存在读取文件路径的逻辑,尤其是拼接路径或传入 filename 参数时,会默认判定为路径遍历风险。

错误示例(存在风险)

@GetMapping("/file")
public String read(@RequestParam String name) throws IOException {return Files.readString(Paths.get("/data/" + name)); // 用户可控
}

安全示例

添加路径白名单与规范化:

@GetMapping("/file")
public String safeRead(@RequestParam String name) throws IOException {Path basePath = Paths.get("/data").toAbsolutePath().normalize();Path filePath = basePath.resolve(name).normalize();if (!filePath.startsWith(basePath)) {throw new SecurityException("非法访问路径");}return Files.readString(filePath);
}

修复建议

  • 使用 resolve().normalize() 防止 …/ 绕过;
  • 加入文件名白名单或后缀限制;
  • 禁止目录级访问(例如 .git、.svn 目录)。

9. 配置文件泄露

修复建议:

  • 禁止 web 服务暴露静态配置目录;
  • 使用 Web 容器配置屏蔽敏感文件后缀;
  • 示例 Nginx 配置:
location ~* \.(yaml|yml|properties|env|xml)$ {deny all;
}

Spring Boot 应配置静态资源路径明确,不应自动映射 /resources/ 或 /config/ 为 web 访问路径。

10. 重定向漏洞(Open Redirect)

工具检测到参数中包含跳转链接(如 url=xxx),会默认判断为 Open Redirect 漏洞。需判断跳转目标是否为白名单内地址。

错误示例(未校验)

@GetMapping("/redirect")
public void redirect(@RequestParam String url, HttpServletResponse response) throws IOException {response.sendRedirect(url); // 用户可控,存在跳转风险
}

安全示例(加白名单)

@GetMapping("/redirect")
public void safeRedirect(@RequestParam String url, HttpServletResponse response) throws IOException {List<String> whitelist = List.of("https://www.safe.com", "https://app.safe.com");if (whitelist.stream().anyMatch(url::startsWith)) {response.sendRedirect(url);} else {response.sendError(403, "非法跳转地址");}
}

修复建议

  • 添加跳转目标白名单;
  • 禁止跳转到非站内或站外地址;
  • 可以使用前端处理跳转,避免后端 302 跳转逻辑。
http://www.dtcms.com/wzjs/183620.html

相关文章:

  • 市工商局网站建设情况seo网站结构优化的方法
  • 电子商务网站开发seo排名怎么看
  • 如何在各个购物网站之间做差价搜云seo
  • 太原市做网站公司电商培训机构靠谱吗
  • 做鱼网站的域名徐州seo顾问
  • 公司网站上的员工风采怎么做直接打开百度
  • 网站后台维护怎么做新乡seo网络推广费用
  • 宁夏固原建设网站今日头条郑州头条新闻
  • 网站站点层叠样式怎么做广告行业怎么找客户
  • 网站上的动图axure怎么做网站维护费用
  • 日照网站建设费用企业网络营销顾问
  • 内网网站建设汇报app怎么开发出来的
  • 公司网站党风廉政建设专栏马鞍山网站seo
  • 快速建站公司有哪些南宁百度seo价格
  • 注册网站授权书怎么写微商怎么引流被加精准粉
  • 中小学网站建设论文seo店铺描述
  • 网站安全检测可以监测哪些内容风险信息二级网站怎么做
  • 自己做微信电影网站怎么做自助建站系统开发
  • 上海企业制作网站有哪些徐州网页关键词优化
  • 南村网站建设微信推广费用一般多少
  • 成都 网站开发优化关键词是什么意思
  • dreamweaver网站建设搜索引擎优化结果
  • 黄浦区做网站百度搜索关键词规则
  • 江西师范大学两学一做专题网站百度手机卫士下载安装
  • 有什么好字体可以导入wordpress网站seo 优化
  • 郑州网站制作费用推广平台
  • 攸县住房和城乡规划建设局网站设计公司取名字大全集
  • 北京营销型网站建设培训站长统计app软件
  • b2c网站二次开发seo的优缺点
  • 做网站要求付全款旅游最新资讯