热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

常见的网站攻击与防御,道高一尺,魔高一丈

从互联网诞生起,安全威胁就--直伴随着网站的成长,各种Web进犯和信息走漏也从未停止。2011年中国互联网范畴爆出两桩比较大的安全事故,一

从互联网诞生起,安全威胁就--直伴随着网站的成长,各种Web进犯和信息走漏也从未停止。2011年中国互联网范畴爆出两桩比较大的安全事故,一桩是新浪微博遭XSS进犯,另一桩是以CSDN为代表的多个网站走漏用户密码和个人信息。特别是后者,因为影响人群广泛,部分受影响网站涉及用户实体财物和交易安全,一时成为言论焦点。

一、XSS攻击

xss攻击即跨站点脚本攻击( Cross Site Script), 指黑客通过篡改网页,注入恶意HTML脚本,保存在网站的服务器,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。

XSS攻击相对而言是一种“古老”的攻击手段,却又历久弥新,不断变化出新的攻击花样,许多以前认为不可能用来攻击的漏洞也逐渐被攻击者利用。因此XSS防攻击也是非常复杂的。主要手段有如下两种。

1、过滤消毒

xss攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的&#xff0c;这些脚本是一般用户输入中不使用的&#xff0c;如果进行过滤和消毒处理&#xff0c;即对某些html 危险字符转义&#xff0c;如“>”转义为“>"、“<”转义为“<” 等&#xff0c;就可以防止大部分攻击。为了避免对不必要的内容错误转义&#xff0c;如“3<5”中的“<”需要进行文本匹配后再转义&#xff0c;如“

2、HttpOnly

最早由微软提出&#xff0c;即浏览器禁止页面Javascript访问带有HttpOnly属性的COOKIE。

HttpOnly并不是直接对抗XSS攻击的&#xff0c;而是防止XSS攻击者窃取COOKIE。对于存放敏感

信息的COOKIE,如用户认证信息等&#xff0c;可通过对该COOKIE添加HttpOnly属性&#xff0c;避免被攻击

脚本窃取。

二、注入攻击

注入攻击主要有两种形式&#xff0c;SQL 注入攻击和OS注入攻击。SQL注入攻击的原理如下。攻击者在HTTP请求中注入恶意SQL命令( drop table users;),服务器用请求参数构造数据库SQL命令时&#xff0c;恶意SQL被一起构造&#xff0c;并在数据库中执行。

在这里插入图片描述
SQL注入攻击需要攻击者对数据库结构有所了解才能进行&#xff0c;攻击者获取数据库表结构信息的手段有如下几种&#xff1a;比如网站使用了开源的组件、错误提示返回数据结构信息等。常用防御方式有两种&#xff1a;

1、过滤

和防XSS攻击一样&#xff0c;请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配&#xff0c;过滤请求数据中可能注入的SQL&#xff0c;如“ drop table" 、“ b(?:updatelb.?bset|deletebW?bfrom)b"等。

2、参数绑定

使用预编译手段&#xff0c;绑定参数是最好的防SQL注入方法。目前许多数据访问层框架&#xff0c;如IBatis, Hibernate等,都实现SQL预编译和参数绑定,攻击者的恶意SQL会被当做SQL的参数&#xff0c;而不是SQL命令被执行。

除了SQL注入&#xff0c;攻击者还根据具体应用&#xff0c;注入OS命令、编程语言代码等&#xff0c;利用程序漏洞&#xff0c;达到攻击目的。

三、CSRF攻击

CSRF ( Cross Site Request Forgery,跨站点请求伪造),攻击者通过跨站请求&#xff0c;以合法用户的身份进行非法操作&#xff0c;如转账交易、发表评论等。CSRF的主要手法是利用跨站请求&#xff0c;在用户不知情的情况下&#xff0c;以用户的身份伪造请求。其核心是利用了浏览器COOKIE或服务器Session策略&#xff0c;盗取用户身份。
在这里插入图片描述
相应地&#xff0c;CSRF的防御手段主要是识别请求者身份。主要有下面几种方法。

1、表单token

CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才可以。表单Token通过在请求参数中增加随机数的办法来阻止攻击者获得所有请求参数:在页面表单中增加一个随机数作为Token,每次响应页面的Token都不相同&#xff0c;从正常页面提交的请求会包含该Token值,而伪造的请求无法获得该值,服务器检查请求参数中Token的值是否存在并且正确以确定请求提交者是否合法。

2、验证码

相对说来&#xff0c;验证码则更加简单有效&#xff0c;即请求提交时&#xff0c;需要用户输入验证码&#xff0c;以避免在用户不知情的情况下被攻击者伪造请求。但是输入验证码是一个糟糕的用户体验&#xff0c;所以请在必要时使用&#xff0c;如支付交易等关键页面。

3、Referer check

HTTP请求头的Referer域中记录着请求来源&#xff0c;可通过检查请求来源,验证其是否合法。很多网站使用这个功能实现图片防盗链(如果图片访问的页面来源不是来自自己网站的网页就拒绝)。

三、其他攻击和漏洞

以上只是列举常见的三种&#xff0c;还有一些其他的也常被黑客利用&#xff0c;比如错误堆栈信息直接返回敏感信息&#xff0c;HTML注释有敏感信息&#xff0c;文件上传只没有限制文件类型&#xff08;黑客上传恶意脚本&#xff09;&#xff0c;路径遍厉等


推荐阅读
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • Norton Partition Magic 中 PHP 函数 error_reporting(E_ALL ^ E_NOTICE) 的详细解析与应用
    在 Windows 环境下,通过具体示例分析了 `Norton Partition Magic` 中 `PHP` 函数 `error_reporting(E_ALL ^ E_NOTICE)` 的详细解析与应用。该函数用于控制错误报告级别,例如在从 PHP 4.3.0 升级到 4.3.1 后,程序出现多处错误的原因及解决方法。本文深入探讨了错误报告配置对程序稳定性的影响,并提供了实用的调试技巧。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 基于Java和JSP的电子医疗记录管理平台
    随着信息技术的快速发展,各类管理系统已在各行各业得到广泛应用。传统的人工管理模式已逐渐无法满足现代需求。本文介绍了一种基于Java和JSP技术开发的电子医疗记录管理平台,旨在提高医疗行业的信息化水平和管理效率。该平台通过整合先进的数据库技术和Web开发框架,实现了医疗记录的高效存储、查询和管理,为医护人员提供了便捷的操作界面和强大的数据支持。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 如何运用蒙特卡洛方法计算NPV:计算机专业毕业设计遇到难题怎么办?
    许多计算机科学专业的学生在大学期间都会遇到这样的困扰:课堂上教授的内容往往偏向理论,实际应用的知识点讲解得较为浅显和概括,导致在进行毕业设计时,如运用蒙特卡洛方法计算净现值(NPV)等复杂问题时感到无从下手。本文旨在探讨如何通过深入理解和实践蒙特卡洛模拟技术,解决这类计算难题,为学生的毕业设计提供实用指导。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • C#是一种现代、简洁且完全面向对象的编程语言,其设计受到了C、C++和Java等语言的影响。作为.NET框架的核心组成部分,C#不仅具备强大的功能,还能够支持广泛的应用系统开发,包括但不限于桌面应用程序、Web服务和移动应用。 ... [详细]
  • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
author-avatar
手机用户2502918767
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有