常见web安全问题概念介绍以及防御方法(代码片段)

刘翾 刘翾     2023-03-06     472

关键词:

文章目录

1. XSS ( 跨站脚本攻击 )

定义: 通过恶意攻击者往WEB页面插入恶意JS代码, 当用户浏览, 嵌入的代码会被执行, 达到恶意攻击用户控制浏览器的目的. xss是代码注入的一种.

1.2. 分类

1.2.1. Reflected XSS 反射型

攻击者将跨站代码写在链接中, 受害者请求这种连接时, 跨站代码经过服务端反射回来触发, 此类代码不会存储到服务端. 主要是由于服务端接收到客户端的不安全输入,在客户端触发执行从而发起 Web 攻击.

例如: 搜索关键词填入<script>alert('handsome boy')</script>, 点击搜索。页面没有对关键词进行过滤,这段代码就会直接在页面上执行,弹出 alert

1.2.2. Stored XSS 存储型

攻击者将恶意数据存储到服务端的数据库中, 服务器脚本从数据库中获取该数据后, 没有进行安全处理即显示在公开页面上, 受害者访问该页面即中招. 一般提交的内容都是通过一些富文本编辑器编辑的,很容易插入危险代码

1.2.3. DOM型

由js脚本动态创建, 输出到页面造成的. 此类型不需要经过服务器.

1.3.防御方法

  • 永远不要相信用户的输入: 输入过滤, 输出转义
  • 输入: 非字符串或有固定值时, 事先进行类型/值检查
  • 输出: 进行html转义(如<转义为&lt
  • callback参数只允许字母, 数字, 下划线
  • Java项目使用安全包, 可使用esapi的过滤
  • PHP可参见开发规范

2. CSRF(跨站请求伪造)

定义: 链接的表单提交的所有请求参数都可被预测, 攻击者构造好一个站内URL或在第三方网站设置一个自动提交的表单, 当合法用户在登录状态时, 攻击者诱使其点击, 此时就会在不知情的情况下执行了攻击者伪造的请求

2.1. 检测步骤

  • 对所有增删改操作的URL进行检查, 是否在POST参数中存在token, 如果无token则存在风险.
  • 若存在token, 则token设置为空以及任意token进行重放, 检查是否能够成功执行, 如果执行成功, 则存在风险

2.2. 防御方法

  • 对所有涉及增删改的操作添加csrftoken, 并于服务端验证: 1. 服务端生成csrftoken, 放入服务端session, 放入前端cookie中; 2. 前端url通过js抓取cookie内容带入请求head中; 3. 服务端获取head中csrftoken与之前放入的session的做比较.

3. Jsonp劫持

**定义: **为了解决跨域问题, 使用jsonp方式传输数据, 由于数据很难做到权限校验, 攻击者可以构造带有该jsonp接口的恶意页面, 发给用户点击, 从而用户的敏感数据通过jsonp接口传输到攻击者的服务器上.

例:

<html>
	<script>
		function aaa(data) 
			// 发送data到攻击者服务器
		
	</script>
	<script src="http://a.com/get?callback=aaa" />
</html>

3.1. 防御方法

  • 敏感数据尽量不要采用JSONP跨域传输.
  • 如果需要, JSONP接口的后端需要对referer进行校验, 只允许受信任的调用方域名的页面里嵌入我们的JSONP或者token
  • 域名是否受信任, 可使用安全包的URL白名单校验函数检查
  • callback 函数名词最长 50 个字符限制
  • callback 函数名只允许[,], a-zA-Z0123456789_,$, .,防止一般的 XSS,utf-7 XSS等攻击

4. 钓鱼攻击

此部分来自 https://eggjs.org/zh-cn/core/security.html#url-钓鱼 egg文档

4.1. URL钓鱼

服务端未对传入的跳转 url 变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。 由于是从可信的站点跳转出去的,用户会比较信任,所以跳转漏洞一般用于钓鱼攻击

4.1.1. 防御方法

  • 若跳转的 url 事先是可以确定的,包括 url 和参数的值,则可以在后台先配置好,url 参数只需传对应 url 的索引即可,通过索引找到对应具体 url 再进行跳转;
  • 若跳转的 url 事先不确定,但其输入是由后台生成的(不是用户通过参数传人),则可以先生成好跳转链接然后进行签名;
  • 若 1 和 2 都不满足,url 事先无法确定,只能通过前端参数传入,则必须在跳转的时候对 url 进行按规则校验:判断 url 是否在应用授权的白名单内

4.2. 图片钓鱼

如果可以允许用户向网页里插入未经验证的外链图片,这有可能出现钓鱼风险。

比如常见的 401钓鱼, 攻击者在访问页面时,页面弹出验证页面让用户输入帐号及密码,当用户输入之后,帐号及密码就存储到了黑客的服务器中。 通常这种情况会出现在<img src=$url />中,系统不对$url是否在域名白名单内进行校验

4.2.1. 防御方法

  • 对于<a href=""/><img src=""/>此类标签的url首先要进行转义, 防止xss, 并做域名白名单

4.3. iframe 钓鱼

iframe 钓鱼,通过内嵌 iframe 到被攻击的网页中,攻击者可以引导用户去点击 iframe 指向的危险网站,甚至遮盖,影响网站的正常功能,劫持用户的点击操作。

4.3.1. 防御方法

设置X-Frame-Options 这个安全头来防止iframe 钓鱼。默认值为 SAMEORIGIN,只允许同域把本页面当作 iframe 嵌入


5. SSRF 服务端请求伪造

一般来说,SSRF 安全漏洞常见于开发者在服务端直接请求客户端传递进来的 URL 资源,一旦攻击者传入一些内部的 URL 即可发起 SSRF 攻击。

5.1. 防御方法

配置黑白名单

web安全——sql注入漏洞(代码片段)

SQL注入漏洞什么是SQL注入漏洞?一、SQL注入1、常见SQL注入2、错误回显导致SQL注入3、盲注(BindInjection)4、TimingAttackTimingAttack的使用方法:二、数据库攻击技巧1、常见攻击方式2、命令执行3、攻击存储过程4、编码... 查看详情

web系统常见安全漏洞介绍及解决方案-sql注入(代码片段)

先看一下目录一、常见漏洞类型二、SQL注入1、SQL注入危险性、可能原因2、场景重现3、sql盲注4、检测⽅法5、防护⽅案三、使用ORM框架一、常见漏洞类型关于web安全测试,目前主要有以下几种攻击方法:XSS跨站脚本攻击CSR... 查看详情

常见的web安全问题总结(代码片段)

...,今天就会从几个方面说起前端web攻击和防御的常用手段常见的web攻击方式    1.XSS    XSS(CrossSiteScripting)跨站脚本攻击,因为缩写和css重叠,所以能叫XSS,跨脚本攻击是指通过存在安全漏洞的web网站注册用户的浏览... 查看详情

常见的网站攻击手段和防御方法

XSS攻击     XSS攻击全称跨站脚本攻击,是为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用... 查看详情

:网络协议第20节:web开发安全

...L注入漏洞等。XSS,CSRF以及SSRF,SQL注入都是Web开发中最为常见的攻击手段,日常开发中,我们必须采取有效的防御措施。所以,让我们来一起看看常见Web安全漏洞的相关技术原理吧~( 查看详情

漏洞防御以及概念

...网站的文件传输和性能。它还包含了诸如DDoS保护之类的安全特性。持续威胁管理:基于预防技术的适应性和预见性防御,为及时的事件反应做好准备。跨站点请求伪造(CSRF):一个恶意的web攻击,一个攻击程序迫使一个用户的浏... 查看详情

20165309《网络对抗技术》实验九:web安全基础(代码片段)

20165309《网络对抗技术》实验九:Web安全基础1.基础问题回答(1)SQL注入攻击原理,如何防御。(2)XSS攻击的原理,如何防御。(3)CSRF攻击原理,如何防御。2.实践总结与体会(1)遇到的问题与解决(2)实验感受3.实践过程记录(1)前期准备:... 查看详情

web系统常见安全漏洞介绍及解决方案-csrf攻击(代码片段)

🐳博客主页:举杯同庆–生命不息,折腾不止🌐订阅专栏:『Web安全』📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀!👉关注✨、点赞👍、收藏📂、评论。... 查看详情

前端攻击防御(代码片段)

...:https://www.cnblogs.com/zhiying/p/11018331.html  前端安全-常见的攻击以及防御一、基础知识1、XSS(CrossSiteScripting)跨站脚本攻击(1)原理:页面渲染的数据中包含可运行的脚本(2)攻击的基本类型:反射型(url参数直接注入)... 查看详情

wordpress网站被挂马以及防御方法

...限,从而进行修改网站文件,放置木马,这种方式是最为常见的也是最容易防御的。防御这种破解 查看详情

防火墙和系统安全防护和优化(代码片段)

...基于云安全大数据能力,用于防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免您的网站资产数据泄露,保障网站的安全与可用性。Web应用防火墙... 查看详情

ddosccsql注入,跨站攻击防御方法

web安全常见攻击解读--DDos、cc、sql注入、xss、CSRF 一,DDoshttps://www.cnblogs.com/sochishun/p/7081739.html#4111858http://nic.swu.edu.cn/s/nic/thyt/20180604/2555404.html1.1DDos介绍DDoS是英文DistributedDenialofService的 查看详情

3大web安全漏洞防御详解:xss、csrf、以及sql注入解决方案

...需要掌握基本的web安全知识,防患于未然,下面列举一些常见的安全漏洞,以及对应的防御解决方案。1.前端安全2.后端安全1.XSS简介跨站脚本(crosssitescript)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最... 查看详情

web安全之xss攻击原理及防范(代码片段)

...型XSS四:DOM-based型XSS五:SQL注入六:XSS如何防范?1.cookie安全策略2.X-XSS-Protection设置3.XSS防御HTML编码4.XSS防御HTMLAttribute编码5.XSS防御之javascript编码6.XSS防御之URL编码7.XSS防御之CSS编码8.开启CSP网页安全政策防止XSS攻击回到顶部 查看详情

腾讯大牛亲授web前后端漏洞分析与防御技巧

第1章课程介绍介绍安全问题在web开发中的重要性,并对课程整体进行介绍1-1Web安全课程介绍1-2项目总览第2章环境搭建本章节我们会搭建项目所需要的环境2-1环境搭建上2-2环境搭建下第3章前端XSS系统介绍XSS攻击的原理、危害,以... 查看详情

exp9web安全基础实践20164318毛瀚逸(代码片段)

1.实验后回答问题(1)SQL注入攻击原理,如何防御原理:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。防御:对输入的数据进行限制,非法字符不能输入(2)XSS... 查看详情

beef介绍与安装使用(代码片段)

...在面对各类客户提问的时候,不得不面对的一个问题就是安全问题,即使技术再发展,也无法确保100%安全,因此安全是永不过时的一个话题。在《互联网企业安全高级指南》中为我们提供了一个全方位的互联网安全防御理论与... 查看详情

androidwebview详解,常见漏洞详解和安全源码(上)(代码片段)

  这篇博客主要来介绍WebView的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析。  由于博客内容长度,这次将分为上下两篇,上篇详解WebView的使... 查看详情