渗透测试服务 针对CSRF漏洞检测与代码防御办法

简介: XSS跨站以及CSRF攻击,在目前的渗透测试,以及网站漏洞检测中 ,经常的被爆出有高危漏洞,我们SINE安全公司在对客户网站进行渗透测试时,也常有的发现客户网站以及APP存在以上的漏洞,其实CSRF以及XSS跨站很容易被发现以及利用,在收集客户网站域名,以及其他信息的时候,大体的注意一些请求操作,前端输入,get,post请求中,可否插入csrf代码,以及XSS代码。

XSS跨站以及CSRF攻击,在目前的渗透测试,以及网站漏洞检测中 ,经常的被爆出有高危漏洞,我们SINE安全公司在对客户网站进行渗透测试时,也常有的发现客户网站以及APP存在以上的漏洞,其实CSRF以及XSS跨站很容易被发现以及利用,在收集客户网站域名,以及其他信息的时候,大体的注意一些请求操作,前端输入,get,post请求中,可否插入csrf代码,以及XSS代码。


5bafa40f4bfbfbed7be9d5598c44ae33aec31f9a.jpeg


很多客户的网站都有做一些安全的过滤,都是做一些恶意参数的拦截,检测的字段也都是referer检测以及post内容检测,在http头,cookies上并没有做详细的安全校验与过滤,今天主要讲一讲如何检测csrf漏洞以及csrf防护办法,防止xss csrf的攻击。


3bf33a87e950352a28e2ab9702bb9ef7b0118ba8.jpeg


通常我们SINE安全在渗透测试客户网站是否存在csrf漏洞,首先采用点击的形式去测试漏洞,在一个网站功能上利用点击的方式绕过安全校验与拦截,从技术层面上来讲,点击的请求操作来自于信任的网站,是不会对csrf的攻击进行拦截的,也就会导致CSRF攻击。再一个检测漏洞的方式更改请求方式,比如之前网站使用的都是get提交方式去请求网站的后端,我们可以伪造参数,抓包修改post提交方式发送过去,就可以绕过网站之前的安全防护,直接执行CSRF恶意代码,漏洞产生的原因就是,网站开发者只针对了GET请求方式进行安全拦截,并没有对post的方式进行拦截,导致漏洞的发生。有些客户网站使用了token来防止XSS跨站的攻击,在设计token的时候没有考虑到空值是否可以绕过的问题,导致可以token为空,就可以直接将恶意代码传入到后端中去。还有的网站APP没有token的所属账户进行校验,导致可以利用其它账户的token进行CSRF代码攻击。


e824b899a9014c0889679c695b83670d79f4f498.jpeg


那如何防止XSS csrf攻击? 如何修复该网站漏洞


根据我们SINE安全十多年来总结下来的经验,针对XSS,csrf漏洞修复方案是:对所有的GET请求,以及POST请求里,过滤非法字符的输入。'分号过滤 --过滤 %20特殊字符过滤,单引号过滤,%百分号,<>,and过滤,tab键值等地的安全过滤。使用token对csrf的请求进行安全校验与拦截,对token的控制进行逻辑功能判断,如果发现token值为空,直接返回404错误,或者拦截该值为空的请求,还有要对token的所属账户进行校验,判断该token是否为当前账户的,如果不是就拦截掉该请求,或者返回错误页面。


使用session与token的双层安全校验,如果seeion与token值不对等,与你的加密算法不一致,就将该请求过滤拦截掉,如果两个的值与加密算出来的值相等,就是合法的请求,但是加密算法一定要隐藏掉,写入到后端,不要被逆向破解掉。对referer字段进行安全校验,检查URL是否是白名单里的,对于referer为空直接拦截掉该请求,URL的白名单要含有WWW,拒绝二级域名的请求。以上就是关于渗透测试中发现的xss csrf漏洞修复方案,如果您对网站代码不是太懂的话,不知道该如何修复漏洞,可以找专业的网站安全公司来处理解决,国内SINESAFE,绿盟,启明星辰,都是比较不错的网络安全公司,针对漏洞的修复就到这里了,安全提示:网站,APP在上线的同时,一定要对网站进行渗透测试服务,检测网站存在的漏洞,以及安全隐患,防止后期网站运行中出现一些没有必要的损失。

相关文章
|
5月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
478 1
|
6月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
603 0
|
4月前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
5月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
7月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
252 0
|
8月前
|
测试技术 Go 开发者
如何为 gRPC Server 编写本地测试代码
本文介绍了如何使用 Go 语言中的 gRPC 测试工具 **bufconn**,通过内存连接实现 gRPC Server 的本地测试,避免端口冲突和外部依赖。结合示例代码,讲解了初始化内存监听、自定义拨号器及编写测试用例的完整流程,并借助断言库提升测试可读性与准确性。适用于单元及集成测试,助力高效开发。
181 1
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
8月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1241 23
|
10月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1623 24