开发者必读篇之Web漏洞防护指南

Web编程安全规范---输入数据校验 说明:服务器产生的输入是指除用户产生的输入以外的输入,例如来自hidden fields、selection boxes、check boxes、radio buttons、cookies、HTTP headers、热点链接包含的URL参数的数据或客户端脚本等;必须假定所有服务器产生的输入都是被篡改过的、恶意的,并对它们进行合法性校验,如果不合法,说明有人恶意篡改数据。:对于在客户端已经做了输入校验,在服务器端再次以相同的规则进行校验时,一旦数据不合法,必须使会话失效,并记录告警日志。 阅读详情

web的发展史

早期的互联网非常的单调,一般只有静态页面,现在,随着技术的发展,web上大多数站点实际上是web应用程序,在服务器和浏览器之间进行双向的信息传递。他们支持注册登录,金融交易,搜索及用户创作的内容。用户只需要拥有一个浏览器,就能实现各种功能。

Web是指一个网站的前端页面到后端服务,比如我们常见的 Javascript、PHP、Python、Mysql、jQuery、Docker 等,包括开发、运维这些服务。

所以在我看来 Web 安全也就是从安全的角度探索 Web 的一种方式。

拓展阅读:

《彻底理解cookie、session、token》

https://mp.weixin.qq.com/s/ow6CryxVrkeU79GD857d1w

web 请求的过程

作者:二向箔安全 链接:https://www.zhihu.com/question/21606800/answer/219614097

  1. 浏览器:浏览器即客户端,提供客户端和服务器端的数据信息交互。
  2. http:客户端与web服务器进行交互时就存在Web请求,这种请求都基于统一的应用层协议——HTTP协议来交互数据。http属于轻量级协议,无需连接,提供了对通信错误的容错性。
  3. 中间件:中间件是位于平台(硬件和操作系统)和应用之间的通用服务
  4. Server容器:Server容器负责解析用户请求和脚本语言,类似的有Tomcat,JBoss等。我们访问网页看到是web容器处理后的内容。
  5. 数据库:动态页面可提供交互式的信息查询服务,主要依赖于Web数据库的实现,对外提供包含 表单的Web页面作为访问接口,查询结果也以包含数据列表的Web页面形式返回给用户。

当然除了这些数据也有可能流向不些不可见的第三方服务商。

拓展阅读:

数据流中,有个关键的是HTTP协议,从上到下→从下到上的头尾两端(即请求响应),搞通!推荐阅读《HTTP权威指南》,零基础入门的同学,推荐《图解HTTP》,从基础知识到最新动向,172张图解轻松入门。

主流Web漏洞

本文主要讨论以下几种攻击方式: SQL 注入、XSS攻击、CSRF攻击、URL跳转漏洞。

SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

原因:

当使用外部不可信任的数据作为参数进行数据库的增、删、改、查时,如果未对外部数据进行过滤,就会产生 SQL 注入漏洞。(如下图所示)

①通过检查Web页而上存在的SQL注入漏洞,构建特殊的SQL注入点;

②其次通过这些特殊的注入点利用Web页而动态传递参数的功能,将SQL的语法组合动态传递给数据库;

③然后根据数据库的不同类型,对数据库采取不同的处理;

④最后执行SQL语句,从而达到攻击者想要的目的。

解决方案:

具体的解决方案很多,但大部分都是基于一点:不信任任何外部输入。

所以,对任何外部输入都进行过滤,然后再进行数据库的增、删、改、查。

此外,适当的权限控制、不曝露必要的安全信息和日志也有助于预防 SQL 注入漏洞。

参考《Web安全漏洞之SQL注入 - 防御方法》

(
https://juejin.im/post/5bd5b820e51d456f72531fa8#heading-2)了解具体的解决方案。

拓展阅读:

《Web 安全漏洞之 SQL 注入》

https://juejin.im/post/5bd5b820e51d456f72531fa8

《SQL 注入详解》

https://segmentfault.com/a/1190000007520556

XSS攻击

XSS则是攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

原因:

当攻击者通过某种方式向浏览器页面注入了恶意代码,并且浏览器执行了这些代码。数据流程如下:

恶意用户的Html输入——>Web程序——>进入数据库——>Web程序———>用户浏览器

解决方案:

一个基本的思路是渲染前端页面(不管是客户端渲染还是服务器端渲染)或者动态插入 HTML 片段时,任何数据都不可信任,都要先做 HTML 过滤,然后再渲染。

参考《前端安全系列(一):如何防止XSS攻击? - 攻击的预防》(
https://segmentfault.com/a/1190000016551188#articleHeader7)了解具体的解决方案。

拓展阅读:

《前端安全系列(一):如何防止XSS攻击?》

https://segmentfault.com/a/1190000016551188

《前端防御 XSS》

https://juejin.im/entry/56da82a87664bf0052ebad41

《浅说 XSS 和 CSRF》

https://juejin.im/entry/5b4b56fd5188251b1a7b2ac1

CSRF攻击

CSRF 攻击全称跨站请求伪造(Cross-site Request Forgery),攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

原因:

典型的CSRF攻击流程:

  • 受害者登录A站点,并保留了登录凭证(Cookie)。
  • 攻击者诱导受害者访问了站点B。
  • 站点B向站点A发送了一个请求,浏览器会默认携带站点A的Cookie信息。
  • 站点A接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是无辜的受害者发送的请求。
  • 站点A以受害者的名义执行了站点B的请求。
  • 攻击完成,攻击者在受害者不知情的情况下,冒充受害者完成了攻击。

注:上面的过程摘自《前端安全系列之二:如何防止CSRF攻击?》(
https://segmentfault.com/a/1190000016659945)。

解决方案:

防止 CSRF 攻击需要在服务器端入手,基本的思路是能正确识别是否是用户发起的请求。

参考《前端安全系列之二:如何防止CSRF攻击? - 防护策略》(
https://segmentfault.com/a/1190000016659945#articleHeader4)了解具体的解决方案。

拓展阅读:

《前端安全系列之二:如何防止CSRF攻击?》

https://segmentfault.com/a/1190000016659945

《Web安全漏洞之CSRF》

https://juejin.im/post/5ba1a800e51d450e8657f5dd

《浅说 XSS 和 CSRF》

https://juejin.im/entry/5b4b56fd5188251b1a7b2ac1

URL跳转漏洞

URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。

URL跳转一般有以下几种实现方式:Header头跳转、Javascript跳转、META标签跳转。

原因:

URL跳转漏洞的出现场景还是很杂的,出现漏洞的原因大概有以下5个:

  • 写代码时没有考虑过任意URL跳转漏洞,或者根本不知道这是个漏洞;
  • 写代码时考虑不周,用取子串、取后缀等方法简单判断,代码逻辑可被绕过;
  • 对传入参数做一些奇葩的操作(域名剪切/拼接/重组)和判断,适得其反,反被绕过;
  • 原始语言自带的解析URL、判断域名的函数库出现逻辑漏洞或者意外特性,可被绕过;
  • 原始语言、服务器/容器特性、浏览器等对标准URL协议解析处理等差异性导致被绕过;

解决方案:

预防这种攻击的方式,就是对客户端传递过来的跳转 URL 进行校验。

1.referer的限制

如果确定传递URL参数进入的来源,我们可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接。

2.加入有效性验证Token

保证所有生成的链接都是来自于可信域,通过在生成的链接里加入用户不可控的token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用。

攻防演练:如何防护0day漏洞 0day防护需持续演进,攻防演练是检验防护能力的试金石。企业应重视演练后的整改与投入,构建多层次防御体系。 阅读详情

相关推荐

Web3.0智能合约安全开发:漏洞分析、防护技巧与实战指南

智能合约安全开发是一个系统工程,需要开发者在架构设计、编码实现、审计测试等多个环节保持警惕。通过遵循安全编码规范、采用经过验证的安全模式、实施严格的安全审计,可以显著降低合约被攻击的风险。建议开发者持续关注最新安全动态,参与安全社区交流,不断提升自身的安全开发能力。

shejizuopin的博客 1240

Java WEB安全问题及解决方案

1.弱口令漏洞 解决方案:最好使用至少6位的数字、字母及特殊字符组合作为密码。数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密。 2.未使用用户名及密码登录后台可直接输入后台URL登录系统。 解决方案:通过配置filter来过滤掉无效用户的连接请求。 3.JSP页面抛出的异常可能暴露程序信息。有经验的入侵者,可以从JSP程序的

天书夜读 2291

Web应用安全威胁与漏洞的防护策略

本文深入探讨了Web应用在设计与实现过程中可能遇到的安全威胁和漏洞,包括会话管理缺陷、错误处理不当、密码学的误用、配置安全问题、拒绝服务攻击、规范表示漏洞和溢出问题等。文章通过实例分析和最佳实践建议,强调了安全措施的重要性,并提供了解决方案和预防措施。

weixin_29885875的博客 707

Java反序列化漏洞从入门到深入(转载)

前言 学习本系列文章需要的Java基础: 了解Java基础语法及结构(菜鸟教程) 了解Java面向对象编程思想(快速理解请上知乎读故事,深入钻研建议买本《疯狂Java讲义》另外有一个刘意老师的教学视频也可以了解一下,其中关于面向对象思想的介绍比较详细。链接:https://pan.baidu.com/s/1kUGb3D1#list/path=%2F&pare...

1193

PLC编程入门基础知识

PLC即为可编程逻辑控制器,实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。

SANRENYIXING的博客 2万+

从零到一:RK3588平台上的星闪模块驱动移植全解析

本文详细解析了在RK3588平台上移植UB37星闪模块驱动的完整流程,涵盖内核配置、设备树适配、驱动编译、功能测试等关键步骤。通过实践指导,帮助开发者掌握星闪技术在嵌入式系统中的集成与应用,提升无线通信模块的开发效率。

qsc90123456的博客 339

程序员必备基础:10种常见安全漏洞浅析

前言我们日常开发中,很多小伙伴容易忽视安全漏洞问题,认为只要正常实现业务逻辑就可以了。其实,安全性才是最重要的。本文将跟大家一起学习常见的安全漏洞问题,希望对大家有帮助哈。如果本文有什么错...

Java知音 1238

springboot 启动方式 装配流程 自定义starter 文件加载顺序 常见设计模式

springboot 启动方式 装配流程 自定义starter 文件加载顺序 常见设计模式

sv 938

开发过程中需要注意的安全问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34122548的博客 1350

Eclipse在Mac上报错JNI_CreateJavaVM?可能是你的JDK架构搞错了(附Adoptium JDK下载指南)

本文深入解析了Mac(尤其是Apple Silicon芯片)上Eclipse启动时出现“JNI_CreateJavaVM”错误的根本原因,即JDK架构(aarch64与x86_64)不匹配。文章提供了详细的诊断步骤,并推荐通过下载并配置Eclipse Adoptium提供的aarch64版本JDK来彻底解决问题,同时附上清晰的配置指南。

weixin_29065659的博客 321

北斗导航 | ChatGPT之RTK、RTD、ARAIM算法原理及程序代码(ChatGPT看你怎么回答,附部分代码)

ChatGPT之RTK、RTD、ARAIM算法原理及程序代码

尘世冰封的专栏 3679

url存在宽字节跨站漏洞_开发者必读篇之Web漏洞防护指南

专注于Java领域优质技术,欢迎关注作者:想要好看的 图灵社区本文配图来自美剧《黑客军团 第3季》。web的发展史早期的互联网非常的单调,一般只有静态页面,现在,随着技术的发展,web上大多数站点实际上是web应用程序,在服务器和浏览器之间进行双向的信息传递。他们支持注册登录,金融交易,搜索及用户创作的内容。用户只需要拥有一个浏览器,就能实现各种功能。Web是指一个网站的前端页面到后端服务,比如我...

weixin_39625468的博客 715

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

包括YOLOv5、YOLOv7、YOLOv8等模型改进 347

Web系统常见的几种漏洞及防护方案

利用漏洞对计算机进行攻击渗透,前提是服务器能正常通信。服务器提供各种服务给客户端进行使用的。它是依靠端口来进行通信,黑客也是根据端口来进行入侵的。那么也不排除一些物理攻击的方式,例如社会工程学①等。 一、越权访问 不同权限账户之间的存在越权访问。 不同权限用户之间连接访问造成的功能、数据越权。 不同权限用户之间替换用户cookie造成的越权。 不同权限用户之间修改id造成的越权。 检测方法: 使用工具抓取A用户功能链接,然后登录B用户对此链接进行访问。 使用抓包工具抓取A用...

聞人听書的博客 3823

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试

LXY_LOVE36的博客 119

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1320

22.4、Web应用漏洞分析与防护

技术安全漏洞,主要是因为技术处理不当而产生的安全隐患,比如SQL注入漏洞,跨站脚本(XSS)、恶意文件执行等第二个是业务逻辑安全漏洞,主要是由于业务流程考虑不周到,或者是处理不当造成的安全隐患。比如用户找回密码缺陷,一般我们找回密码的时候是需要输入你的手机验证码,而且你的手机号是你当初注册时使用的那个手机号,如果他让你重新输入一个新的手机号,那么就绕过了以前的手机号,所有人输入一个新手机号,那都可以找回密码了,所以这肯定不安全。

山兔的博客 841

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Web安全漏洞及安全防护

搭建一个Web应用不仅要考虑其功能与性能的完善性,更要考虑其安全性。Web应用搭建好以后,在暴露于外网的情况下是否是安全的?是否会遭受攻击者的攻击?是否对敏感数据、敏感代码及敏感后台等敏感信息都进行了安全防护?若这些都做到了,是否就万无一失了?若出现了网络攻击事件,是否又有人愿意为其买单? 攻防是一个不断演进的对抗过程。随着黑客攻击技术的发展,其危害足以使一个正常运行的网站遭受灭顶之灾。为了保障Web系统的正常运行,网站所有者及运维人员均希望通过良好的防护手段,抵御来自互联网的攻击行为。...

学以致用 知行合一 3503

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

浅析常见WEB安全漏洞及其防御措施_web漏洞防护

在网络攻防中,Web系统通常是攻击者的首选目标,攻击者大都通过Web打点的方式,先拿到边界Web服务器的权限,再以此为跳板实施内网横向渗透。由于Web系统通常涉及大量的用户数据和敏感信息,一旦受到攻击或破坏,可能造成数据泄露、服务中断等影响。相较于攻击方,Web系统也是防守方的重点防护对象。作为安全开发或安全运营人员,及早发现和修复潜在的WEB安全漏洞,不仅有助于提高互联网业务系统的稳定性,也能降低后期安全运营工作的压力和成本。【一一帮助安全学习,所有资源获取处一一】①网络安全学习路线。

Z4400840的博客 1412

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

网络安全 Web安全常见漏洞和防护经验策略

是Web应用最常见的安全风险集合,帮助开发人员和安全专家识别和防止最严重的网络安全问题。以下是基于OWASPTop10的Web安全防护经验策略与规则集。Web开发者必须对潜在的安全风险有足够的认识,以便保护用户数据、系统和服务。本文将详细介绍Web应用中的Top10常见的一些漏洞,包括漏洞的描述、原理和防护策略,并通过Java代码示例加以展示。

2401_84578953的博客 1453

Web安全深度实战:从漏洞挖掘到安全防护

本文系统讲解Web安全核心漏洞原理与防护方案,涵盖SQL注入、XSS、CSRF、SSRF等常见漏洞。详细解析了SQL注入的多种攻击手法(联合查询、布尔盲注等)及防护方案(预编译语句、ORM框架);分析了XSS攻击类型(存储型、反射型、DOM型)并提出输出编码、CSP策略等防护措施;讲解了CSRF攻击原理及Token验证、SameSite Cookie等防护方法;阐述了SSRF漏洞利用与白名单验证等防护方案。此外还包含文件上传安全、安全头配置、WAF规则、安全开发生命周期等全方位防护体系,提供代码示例和实战案

2401_84466225的博客 952

web漏洞-xss漏洞绕过防护

介绍了xss漏洞的防护方法以及绕过方式。

qq_44312640的博客 1222

【收藏必备】Web安全完全指南:从上网到开发,小白也能掌握的防护技巧

本文通过"网上商店"类比直观解释Web安全,为普通用户提供登录、支付和浏览三场景的防护技巧,为开发者分享输入过滤、密码加密和定期更新三大安全习惯。文章强调Web安全是日常习惯而非一次性工程,无论是上网冲浪还是开发网站,养成这些小习惯就能成为自己的"安全守护者"。

m0_56146626的博客 1567

WEB漏洞分类与定义指南

WEB漏洞分类与定义指南 web vulnerability classification and definition guideline 前 言 本标准按照 本标准按照 GB/T1.1GB/T1.1GB/T1.1GB/T1.1 GB/T1.1 -2009 给出的规则起草 给出的规则起草 给出的规则起草 。 随着电信网和互联的发展,将不断补充完善安全防护体系相关标准。 随着电信网和互联的发展,将不断补充完善安全防护体系相关标准。 随着电信网和互联的发展,将不断补充完善安全防护体系相关标准。 随着电信网和.

Macro2的博客 2154

Crypto-JS安全漏洞深度分析:开发者必读的终极防护指南

Crypto-JS作为一款流行的JavaScript加密标准库,在Web开发中广泛应用。然而,随着项目的停止维护,用户面临着严峻的安全挑战。本文将深入剖析Crypto-JS的潜在安全风险,为开发者提供全面的防护策略。 ## 🔍 Crypto-JS项目现状与安全背景 根据官方文档显示,Crypto-JS的**活跃开发已经停止**,这意味着该项目不再有官方维护。这是一个**重大的安全警报**,因

gitblog_00380的博客 587
上一篇: 亿级数据毫秒级查询,ElasticSearch是怎么做到的?
下一篇: 架构师必备技能:教你画出一张合格的技术架构图
JavaShark
博客等级 码龄4年 184粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值