网络安全 | 了解XSS的基本知识

1,996 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

今天到了分享我最喜欢的东西,一些网络安全有关的东西。

小时候就特别喜欢黑客,觉得特帅~

大学报计算机相关专业可能也是这方面的原因,但是阴差阳错,没有走网络安全的方向,但是不影响我们学习了解一些网络安全方面的知识。

今天来说一说,XSS攻击的事情。

阿泽有幸,之前用php搭建的博客(typecho),被我同学挂了脚本,xss了一下,完后,什么什么的,啊,你们懂得。

都没了☹

从那以后,我就知道,网络安全,是不可避免的,是一定要考虑到的,是一定要去了解的东西。

身处网络时代,谁又能置身事外!

什么是xss攻击?

XSS又叫CSS(Cross Site Script),跨站脚本攻击:指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

image-20210617162454870.png

那么,当当前的网页弹出1的时候,我们就知道,这个网页是可以执行js脚本的了,那么我们是不是就可以通过document去盗取一些信息,来帮助我们更进一步的去潜入进去呢?例如盗取一下cookie等。

先来看一下XSS有几种吧:

  • 持久型:一些可以提交的地方,文章评论个人信息填写等,如果没有加过滤的话,嵌入的脚本就会被提交到服务器上,之后用户每次访问都会触发脚本(例如图中的alert(1),每个用户打开都会弹出1)
  • 非持久型:反射型跨站脚本漏洞,是最普遍的类型。大多是链接的方式,需要用户点击,才能返回脚本进行操作(用户访问服务器-->点击跨站链接--->返回脚本代码
  • DOM型:客户端的脚本程序可以通过DOM动态地检查修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞(很少见emm,反正我没见过hhh,日后见到了来补上,再细说)

XSS可能会带来的危害

使网页无法正常运行:这个就是我们上面中图示的内容,如果不仅仅是一个alert(1)呢?外部来一个永久循环,这个网页的弹窗就会永远关不掉,导致无法正常的实现整体业务流程。

获取cookie信息:这个我们也在上文中说过,如果网页上可以执行js脚本的话,那么我们是可以通过document.cookie来实现获取用户cookie的。

试想下如果像QQ空间说说中能够写入xss攻击语句,那岂不是看了你说说的人的号你都可以登录

一个字:爽~

劫持流量恶意跳转:像这样,在网页中想办法插入一句像这样的语句,访问的网页就会直接跳转到百度去。

<script>window.location.href="http://www.baidu.com";</script>

XSS的攻击应该具备这样的条件

网页内部有输入框,内容可存储在服务器上

输入框内的内容,才能被提交到他的服务器上,才能改变这个网页内部的文件内容。

前提是这个输入,没有被过滤,才会成功哦!

可以自己写demo尝试一下,不建议直接在网络上开搞emm,自己玩玩就行哈~

XSS防御措施(对用户输入内容和服务端返回内容进行过滤和转译)

现代大部分浏览器都自带 XSS 筛选器(vue/react等主流框架已经避免类似问题,vue举例:不能在template中写script标签,无法在js中通过ref或append等方式动态改变或添加script标签)

过滤:对诸如scriptimga等标签进行过滤。

编码:像一些常见的符号,如<>在输入的时候要对其进行转换编码,这样做浏览器是不会对该标签进行解释执行的,同时也不影响显示效果。

最后

学习网络安全是为了保护好自己,在这个网络时代,避免自己的信息被不法分子盗取,而不是说我们学会如何去攻击别人

还有更多的网络安全知识等着我们去学习呢,冲!

点个赞,跟我一起学习进步吧♥