常见漏洞的应对方式(一)

简介: 常见漏洞的应对方式(一)

   之前的一篇 常见漏洞总结 介绍了工作中可能常见的一些漏洞,今天来学习下关于这些漏洞的一些应对方式。

1. sql注入

   1)JDBC的预编译

PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1,username);
ps.setString(2,password);
ResultSet rs = ps.executeQuery();

   如上图示例:使用预编译PreparedStatement,通过setXXX方法传递变量,可解决SQL注入问题。

  2)MyBatis

   示例如下:

select * from table 
where username = ${username}
and passeord = #{password};

   mybatis中,使用 # 可以解决注入问题。如上图示例,username存在注入风险,而password不存在。

  3)总结

   两种防注入方式实际都是通过对输入进行预处理,使输入都变为一个字符串,从而忽略sql语句的拼接来达到防注入的效果。


2. XSS漏洞

   1)过滤

注意事项:
  有时过滤会导致一些错误处理,例如将alice's 过滤为alices;
  有时需要进行多次过滤操作,例如<htm<html>l> 过滤掉<html>之后还存在<html>标签
  需要注意多个过滤器生效的先后顺序。多个过滤器一起生效时,有可能后生效的会导致先生效的过滤失效。

   2)输入输出编码

   输入编码往往有全局的解决方案,但是对于持久性的xss,已经入库之后,就难以使用编码来处理。

   3)恶意流量拦截

   通过一些前置的恶意流量检测和拦截,来提前预防攻击产生

   4)CSP解决方案

   内容安全策略(CSP):网站通过发送一个 CSP 头部,来告诉浏览器什么是被授权执行的与什么是需要被禁止的。通过配置浏览器渲染规则,来限制浏览器执行的js代码、html标签等。


3. CSRF漏洞

   1)请求附带随机参数

   每次请求带一次有效的随机数(隐藏 input)。

   2)避免跨域请求

   校验origin,referer;post发送json数据

  3)跨域策略

    Double Submit Cookie


4. 文件上传和下载

   1)文件上传

  • 限制目录不可执行
  • 上传文件的类型和大小检查

   2)文件下载

  • 禁止用户自定义文件路径
  • 对用户请求的文件名进行安全处理
相关文章
|
前端开发 API 数据安全/隐私保护
Web前端开发中的跨域资源共享(CORS)解决方案
【2月更文挑战第5天】在Web前端开发中,跨域资源共享(CORS)是一个常见的挑战。本文将探讨CORS的概念和原理,并介绍一些常用的解决方案,包括服务器端配置和前端处理方法,帮助开发者更好地应对跨域请求问题。
638 4
|
11月前
|
存储 缓存 分布式计算
高内存场景必读!阿里云r7/r9i/r8y/r8i实例架构、性能、价格多维度对比
阿里云针对高性能需求场景,一般会在活动中推出内存型r7、内存型r9i、内存型r8y和内存型r8i这几款内存型实例规格的云服务器。相比于活动内的经济型e和通用算力型u1等实例规格,这些内存型实例在性能上更为强劲,尤其适合对内存和计算能力有较高要求的应用场景。这些实例规格的云服务器在处理器与内存的配比上大多为1:8,但它们在处理器架构、存储性能、网络能力以及安全特性等方面各有千秋,因此适用场景也各不相同。本文将为大家详细介绍内存型r7、r9i、r8y、r8i实例的性能、适用场景的区别以及选择参考。
|
安全 Java 网络安全
SpringBoot 优雅停止服务的几种方法
SpringBoot 优雅停止服务的几种方法
984 0
|
弹性计算 安全 前端开发
阿里云服务器ECS通用型、计算型和内存实例区别、CPU型号、性能参数表
阿里云ECS实例有计算型(c)、通用型(g)和内存型(r)系列,区别在于CPU内存比。计算型1:2,如2核4G;通用型1:4,如2核8G;内存型1:8,如2核16G。实例有第五代至第八代,如c7、g5、r8a等,每代CPU型号和主频提升。例如,c7使用Intel Ice Lake,g7支持虚拟化Enclave。实例性能参数包括网络带宽、收发包能力、IOPS等,适合不同场景,如视频处理、游戏、数据库等
1276 0
|
SQL NoSQL 数据可视化
【国庆弯道超车系列】MongoDB进阶之查询(一)
【国庆弯道超车系列】MongoDB进阶之查询(一)
466 0
|
XML 编解码 开发工具
多路RTSP转RTMP推送方案的两个选择
RTSP转RTMP模块设计,可以用ffmpeg直接命令行转发,也可以用方案二的非常成熟的转发设计,ffmpeg转发,需要有一定的代码基础,有问题的话,bug修复需要对底层逻辑非常了解才行,方案二,技术成熟,二次开发难度不大,很容易集成到自己现有系统
537 2
|
SQL 数据库
SQL使用视图的优缺点
SQL使用视图的优缺点
477 0
|
存储 人工智能 安全
物联网设备安全通信协议:现状、挑战与未来展望
【6月更文挑战第30天】物联网(IoT)技术快速发展带来设备安全通信挑战。现有协议如ZigBee、蓝牙在安全上分为公钥和对称密码体系。面临资源限制、安全威胁、隐私保护和互操作性问题。未来趋势聚焦轻量级协议、多层次安全、隐私技术与标准化,以增强物联网安全性,推动行业健康发展。
|
关系型数据库 数据库
关系型数据库设计规范第三范式(3NF)
【5月更文挑战第14天】关系型数据库设计规范第三范式(3NF)
1276 3
|
Java 网络安全
解析connectionReset异常的原因与解决方案
解析connectionReset异常的原因与解决方案
6887 0