广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >带你理解什么是sql注入攻击、xss攻击和cors攻击
  • 284
分享到

带你理解什么是sql注入攻击、xss攻击和cors攻击

sql注入攻击xss攻击cors攻击 2023-05-16 14:05:52 284人浏览 薄情痞子
摘要

目录sql注入SQL注入攻击的总体思路:SQL注入攻击实例:如何应对:XSS攻击非持久 XSS攻击:解决的具体方案:CORS攻击简单请求:非简单请求:SQL注入 SQL注入就是通过把

SQL注入

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

SQL注入攻击的总体思路:

  • 寻找到SQL注入的位置
  • 判断服务器类型和后台数据库类型
  • 针对不同的服务器和数据库特点进行SQL注入攻击

SQL注入攻击实例:

比如,在一个登录界面,要求输入用户名和密码,可以这样输入实现免帐号登录:

用户名: ‘or 1 = 1 --
密 码:

用户一旦点击登录,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了。这是为什么呢?

下面我们分析一下:从理论上说,后台认证程序中会有如下的SQL语句:

String sql = “select * from user_table where username=' “+userName+” ' and passWord=' “+password+” ‘”;

因此,当输入了上面的用户名和密码,上面的SQL语句变成:

SELECT * FROM user_table WHERE username=''or 1 = 1 –- and password=''

分析上述SQL语句我们知道,username=‘ or 1=1 这个语句一定会成功;然后后面加两个 -,这意味着注释,它将后面的语句注释,让他们不起作用。这样,上述语句永远都能正确执行,用户轻易骗过系统,获取合法身份。

如何应对:

  • 参数绑定
    使用预编译手段,绑定参数是最好的防SQL注入的方法。目前许多的ORM框架及JDBC等都实现了SQL预编译和参数绑定功能,攻击者的恶意SQL会被当做SQL的参数而不是SQL命令被执行。在mybatis的mapper文件中,对于传递的参数我们一般是使用 # 和$来获取参数值。 当使用#时,变量是占位符 ,就是一般我们使用javajdbc的PrepareStatement时的占位符,所有可以防止sql注入;当使用 $ 时,变量就是直接追加在sql中,一般会有sql注入问题。
  • 使用正则表达式过滤传入的参数

XSS攻击

它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。

XSS的攻击方式就是想办法“教唆”用户的浏览器去执行一些这个网页中原本不存在的前端代码。

我们常用的留言板就可以产生XSS攻击(持久性),我们知道留言板通常的任务就是把用户留言的内容展示出来。

正常情况下,用户的留言都是正常的语言文字,留言板显示的内容也就没毛病。

然而这个时候如果有人不按套路出牌,在留言内容中丢进去一行:

<script>alert(“这是一个攻击”)</script>

那么留言板界面的网页代码就会变成形如以下:

那么这个时候问题就来了,当浏览器解析到用户输入的代码那一行时会发生什么呢?

答案很显然,浏览器并不知道这些代码改变了原本程序的意图,会照做弹出一个信息框。就像这样:

<html>
    <head>
       <title>留言板</title>
    </head>
<body>
<div id=”board” 
        <script>alert(“这是一个攻击”)</script>
</div>     
    </body>
</html>

非持久 XSS攻击:

攻击者注入的数据反映在响应中,一个典型的非持久性XSS攻击包含一个带XSS攻击向量的链接(每次攻击需要用户点击)

比如: 正常发送消息:

//www.test.com/message.PHP?send=Hello,World!

非正常发送消息: 接收者接收消息显示的时候将会弹出警告窗口

Http://www.test.com/message.php?send=<script>alert(‘foolish!')</script>!

XSS攻击的主要原因就是过于信任客户端提交的数据。

解决方法是不信任任何客户端提交的数据,只要是客户端提交的数据就应该先进行相应的过滤处理然后方可进行下一步的操作。

解决的具体方案:

  • 将重要的cookie标记为http only, 这样的话javascript 中的document.cookie语句就不能获取到cookie了(如果在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击);
  • 表单数据规定值的类型,例如:年龄应为只能为int、name只能为字母数字组合
  • 对数据进行Html Encode 处理(对HTML转义)
  • 过滤或移除特殊的Html标签,例如: < script >, < iframe > , < for <, > for>, ” for
  • 过滤JavaScript 事件的标签,例如 “οnclick=”, “onfocus” 等等

**需要注意的是:

**在有些应用中是允许html标签出现的,甚至是javascript代码出现。因此,我们在过滤数据的时候需要仔细分析哪些数据是有特殊要求(例如输出需要html代码、javascript代码拼接、或者此表单直接允许使用等等),然后区别处理!

CORS攻击

CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了ajax只能同源使用的限制。

Cors漏洞就是攻击者利用Cors技术来获取用户的敏感数据,从而导致用户敏感信息泄露。

CORS请求可分为两类:

简单请求:

请求方式为GET,POST,HEAD这三种之一,并且HTTP头不超出(Accept,Accept-Language,Content-Language,Lat-Event-ID,Content-Type)这几种字段。Origin字段用来说明,本次请求来自哪个源(协议 + 域名 + 端口)

GET /cors HTTP/1.1
Origin: http://api.bob.com
Host: api.alice.com
Accept-Language: en-US
Connection: keep-alive
User-Agent: Mozilla/5.0…

当浏览器发现服务器的请求为简单请求时,会在头信息里加入Origin字段。Origin字段代表此次请求来自哪个域,服务器就可以检验是否来自该域。

如果匹配,服务器就会在响应里增添三个字段:

1.Access-Control-Allow-Origin
2.Access-Control-Allow-Credentials
3.Access-Control-Expose-Headers

其中 Access-Control-Allow-Origin是必须有的,而剩下两个可有可无。Access-Control-Allow-Origin字段代表允许哪个域访问。

当字段值为‘*’时,就代表任意域都可以访问,这样,就导致了Cors漏洞的产生(可被截取到用户信息)。

在这里插入图片描述

非简单请求:

非简单请求是那种对服务器有特殊要求的请求,比如请求方法是PUT或DELETE,或者Content-Type字段的类型是application/JSON

非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight) 浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。

只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

解决:

1.不要将Access-Control-Allow-Origin字段设置为*

2.严格校验Origin字段的值

3.https 网站不要信任HTTP 域

4.不要信任全部自身子域,减少攻击面

到此这篇关于带你理解什么是sql注入攻击、xss攻击和cors攻击的文章就介绍到这了,更多相关sql注入攻击、xss攻击和cors攻击内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 带你理解什么是sql注入攻击、xss攻击和cors攻击

本文链接: https://www.lsjlt.com/news/210085.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 带你理解什么是sql注入攻击、xss攻击和cors攻击
    目录SQL注入SQL注入攻击的总体思路:SQL注入攻击实例:如何应对:XSS攻击非持久 XSS攻击:解决的具体方案:CORS攻击简单请求:非简单请求:SQL注入 SQL注入就是通过把...
    99+
    2023-05-16
    sql注入攻击 xss攻击 cors攻击
  • 如何理解sql注入和xss攻击
    SQL注入攻击是指通过构建特殊的输入作为参数传入Web应用程序,一般是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作;而Xss攻击称为跨站脚本攻击,它是一种经常出现在web应用中的计算机安全漏洞,因Web应用程序对用户的...
    99+
    2022-10-12
  • 什么是SQL注入攻击,解释如何防范SQL注入攻击?
    1、什么是SQL注入攻击,解释如何防范SQL注入攻击。 SQL注入攻击是一种常见的网络攻击方式,攻击者通过在Web应用程序的查询语句中插入恶意代码,从而获取数据库中的敏感信息或者执行其他恶意操作。 为了防范SQL注入攻击,可以采取以下措施:...
    99+
    2023-08-30
    sql 数据库 面试
  • 如何防止xss和sql注入攻击
    防止xss和sql注入攻击的通用方法:php防sql注入和xss攻击通用过滤如下:function string_remove_xss($html) {preg_match_all("/\...
    99+
    2022-10-17
  • xss攻击原理是什么
    xss攻击原理:XSS是注入攻击的一种,攻击者通过将代码注入被攻击对象的网站中,如果用户访问该网页便会执行被注入的恶意脚本,它主要分为反射性XSS攻击(Reflected XSS attack)和存储型XSS攻击(Stored XSS At...
    99+
    2022-10-19
  • SQL注入攻击的原理是什么
    小编给大家分享一下SQL注入攻击的原理是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql注入攻击的原理恶意用户在提交查询...
    99+
    2022-10-18
  • sql注入攻击指的是什么
    小编给大家分享一下sql注入攻击指的是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参...
    99+
    2022-10-18
  • sql注入攻击针对的是什么
    sql注入攻击针对的是数据库,以网站数据库为目标,利用web应用程序对特殊字符串不完全过滤的缺陷,通过精心构造字符串达到非法访问网站数据库获取机密或者在网站数据库非法执行命令的目的。...
    99+
    2022-10-24
  • sql注入属于什么攻击ddos
    sql注入不属于攻击ddos,它是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,可使用htmlspecialchars()等函数进行转义以及对输入类型进行检测、类型转换等方法进...
    99+
    2022-10-13
  • SQL注入式攻击的本质是什么
    这篇文章主要介绍“SQL注入式攻击的本质是什么”,在日常操作中,相信很多人在SQL注入式攻击的本质是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL注入式攻击的本质是...
    99+
    2022-10-18
  • sql注入攻击应用的现状是什么
    今天就跟大家聊聊有关sql注入攻击应用的现状是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  随着当今世界网络技术与信息技术高速发展,Web应...
    99+
    2022-10-19
  • sql注入攻击经常用什么符号
    sql注入攻击经常用的符号有:--,#,//(,)括号||,+, (空格) 连接符' 单引号|(竖线符号)& (& 符号);(分号)$(美元符号)%(百分比符号)@(at 符号)'(单引号)"(引号)\'(反斜杠转义单引号)\"(反斜杠转义...
    99+
    2022-10-09
  • mybatis注解动态sql注入map和list方式(防sql注入攻击)
    目录网上的教程我的教程(防sql注入攻击)注入Map注入List封装foreachmybatis防止sql注入的循环map写法网上的教程 配置xml 注解中写xml...
    99+
    2022-11-12
  • Web网络安全解析cookie注入攻击原理是什么
    本篇内容介绍了“Web网络安全解析cookie注入攻击原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!cookie注入攻击cooki...
    99+
    2023-06-25
  • 安全漏洞XSS、CSRF、SQL注入以及DDOS攻击的介绍和应对措施
    本篇内容介绍了“安全漏洞XSS、CSRF、SQL注入以及DDOS攻击的介绍和应对措施”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0 ...
    99+
    2023-06-17
  • web网络安全的反射型XSS攻击原理是什么
    本篇内容介绍了“web网络安全的反射型XSS攻击原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!反射型XSS攻击页面http://1...
    99+
    2023-06-25
  • ARP攻击原理和防范方法是什么
    ARP攻击(Address Resolution Protocol attack)是一种网络攻击方式,通过伪造或修改ARP响应包来欺...
    99+
    2023-10-07
    ARP攻击
  • Web网络安全漏洞的DOM型XSS攻击原理是什么
    这篇文章主要介绍“Web网络安全漏洞的DOM型XSS攻击原理是什么”,在日常操作中,相信很多人在Web网络安全漏洞的DOM型XSS攻击原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Web网络安全漏洞...
    99+
    2023-06-25
  • Web网络安全的存储型XSS攻击漏洞原理是什么
    本篇内容介绍了“Web网络安全的存储型XSS攻击漏洞原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!存储型XSS攻击存储型XSS页面...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作