xss攻击

用户通过浏览器访问web网页,xss攻击通过各种办法在用户访问页面的时候,插入一些自己的代码或者脚本让用户访问页面的时候,就可以执行这个脚本,攻击者通过插入的脚本的执行就会获得一些信息(比如cookie),发送到攻击者自己的网站,这就是跨站

xss的危害
1.挂马
把一个木马程序插入一个网站中,利用木马生成器生成一个网码,在传到服务器上,加上一写代码就可以让这个木马程序在打开网页的时候运行,

2.盗取用户的cookie

3.DDOS(拒绝服务)客户端浏览器

4.钓鱼攻击

5.删除目标文章,恶意篡改数据,嫁祸

6.爆发web2.0蠕虫

xss的危害的类型

1.存储型

1.攻击者将恶意代码提交到目标网站的数据库中

2.用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器

3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行

4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作

这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等

2.反射型
1.攻击者构造出特殊的 URL,其中包含恶意代码(多作为参数出现)

2.用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器

3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行

反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。

反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。

由于需要用户主动打开恶意的 URL 才能生效,攻击者往往会结合多种手段诱导用户点击。

POST 的内容也可以触发反射型 XSS,只不过其触发条件比较苛刻(需要构造表单提交页面,并引导用户点击),所以非常少见

后端返回“搜索不成功”数据
前端操作显示 “搜索{xxx}不成功”
此时【 xxx 】即可被人为操作

3.DOM-Based型(前端的事情不涉及后端)

1.攻击者构造出特殊的 URL,其中包含恶意代码

2.用户打开带有恶意代码的 URL

3.用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行

4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作

5.DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞

就是比如有一个东西需要用户填写,然后用户就填写恶意代码,然后浏览器渲染用户填写的东西找出安全漏洞

发生的情况是,要渲染用户输入的东西的时候

反射型xss

dom型xss

图片来自https://www.freebuf.com/articles/web/318982.html

xss的防范

1.对输入(和URL参数)进行过滤,对输出进行编码,cookie设置成http-only

HttpOnly是Cookie中一个属性,用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改

一般后端写

2.对危险字符进行转义

比如
1、空格换成加号(+)

2、正斜杠(/)分隔目录和子目录

3、问号(?)分隔URL和查询

4、百分号(%)制定特殊字符

5、#号指定书签

6、&号分隔参数

CSRF攻击(跨站请求伪造)

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求

利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目

一个典型的CSRF攻击有着如下的流程:

1.受害者登录a.com,并保留了登录凭证(Cookie)

2.攻击者引诱受害者访问了b.com

3.b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带a.com的Cookie

4.a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求

5.a.com以受害者的名义执行了act=xx
攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作

防御CSRF

1.尽量使用post请求

2.加入验证码
这样能确保是用户行为而不是黑客行为

3.验证referer
Referer是header的一部分
referer会告诉我们请求从哪一个网页发来的,黑客伪装用户只能从自己的网站发出请求,对比referer如果referer不一致就拒绝请求。

4.Anti CSRF Token

在from表单或头信息传递一个随机token
token传递在服务端
服务端通过拦截器验证有效性
验证失败拒绝请求

SQL注入

SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。

举个例子
当要登录用户名名为万事胜意密码为123的用户时,客户端会把消息发给服务负端,服务端会发送给数据库,然后再数据库中查询,本来是要查询用户名为万事胜意的用户名和密码为123的用户,如果再用户名上加入#(也就是万事胜意#)那数据库就会忽略后面的内容(数据库中#为注释,数据库就会会忽略后面的内容)也就变成了查找用户名为万事胜意的用户,然后就会显示登录成功

预防方式如下:

1.严格检查输入变量的类型和格式

2.过滤和转义特殊字符

3.对访问数据库的Web应用程序采用Web应用防火墙

参考:https://vue3js.cn/interview/JavaScript/security.html#%E4%BA%8C%E3%80%81xss

web常见的攻击方式相关推荐

  1. web 常见的攻击方式

    文章目录 web常见的攻击方式有哪些?如何防御? web攻击是什么? XSS CSRF SQL注入 web常见的攻击方式有哪些?如何防御? web攻击是什么? Web攻击(WebAttack)是针对用 ...

  2. web常见的攻击方式(WebAttack)及如何防御

    web常见的攻击方式有哪些?如何防御? 面试官:web常见的攻击方式有哪些?如何防御? 一.是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码, ...

  3. web常见的攻击方式有哪些,以及如何进行防御?

    一.是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码,修改网站权限,获取网站用户隐私信息等等 Web应用程序的安全性是任何基于Web业务的重要 ...

  4. 【web常见的攻击方式有哪些?如何防御?】

    一.Web攻击是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,比如植入恶意代码,修改网站权限,获取网站用户隐私信息等等 Web应用程序的安全性是任何基于We ...

  5. web常见的攻击方式有哪些?如何防御?

    一.是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码,修改网站权限,获取网站用户隐私信息等等 Web应用程序的安全性是任何基于Web业务的重要 ...

  6. 网络安全 -- 常见的攻击方式和防守

    网络安全 – 常见的攻击方式和防守 一 . 网页中出现黑链 特点: 隐藏,不易发现,字体大小是0,表面上看不出来,代码层面可以查出来,也可能极限偏移,颜色一致 表现: 多表现为非法植入链接,一般点击会 ...

  7. XSS攻击,常见的攻击方式之一,使用JS脚步注入目标网页

    XSS攻击 中文名为跨站及脚本攻击,只要指使用JavaScript完成恶意的攻击行为. 是常见的攻击方式之一,操作也比较简单. 一.攻击方式 将JavaScript代码注入到网页中,并由浏览器运行该J ...

  8. WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的 ...

  9. php网站实战,PHP实战之WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法 跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见 ...

最新文章

  1. java 多个 panel_在Java中,每次我向JPanel添加多个东西时,第二...
  2. jquery效果 窗口弹出案例
  3. 算法竞赛入门经典(第二版) | 例题4-4 信息解码 (紫皮书牛啤!)(UVa213,Message Decoding)
  4. mysql increment by_Mysql设置auto_increment_increment和auto_increment_offset
  5. 【评分】个人作业——软件工程实践总结作业
  6. iOS底层探索之KVC
  7. TCP/IP 域名系统DNS
  8. R语言---Ubuntu中R语言更新至R4.2.1和R包devtools下载
  9. 王曙燕c语言答案,c语言程序设计王曙燕课后题答案
  10. Unity使用脚本动态修改材质球的颜色
  11. 中台实践:数据中台建设五步法
  12. 【磨刀不误砍柴工】(SCH-1217) Could not open “XXschematic“ for edit. Would you like to open it for read?问题。
  13. 人工智能——归结推理
  14. 12306登录password参数加密逻辑
  15. AngularJS标准Web业务流程开发框架-4.AngularJS四大模块之一:Controller
  16. 数据分析师对年龄有限制吗,是不是靠青春吃饭?
  17. 端口号是什么以及常见端口号
  18. 你手上有50万,你会干什么?
  19. 【PMP】成本的分类
  20. Ubuntu 使用技巧【不断更新】

热门文章

  1. 从零开始前端学习[11]:控制文本显示的样式属性
  2. 分享怎么让你的微信朋友圈提高200%的赚钱能力?
  3. c++中的引用变量,以及引用变量作为函数形参的教程
  4. (附源码)ssm生鲜超市管理系统的设计与实现 毕业设计261635
  5. JVM即时编译(JIT)
  6. 台式计算机操作系统的安装,自己要怎么给台式电脑安装windows操作系统
  7. 71-Java的包装类、正则表达式、Arrays
  8. 各浏览器websocket最大连接数
  9. 毒app能让国内鉴别市场更靠谱吗
  10. 微信公众平台开发之楼盘房产