互联网的正常工作过程:
张三被捕
但是如果有漏洞被XSS攻击:
XSS是跨站点脚本攻击(Cross Site Scripting),为了不与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,因此跨站点脚本攻击简称为XSS。恶意攻击者会将恶意脚本代码插入网页。用户浏览页面时,将执行在Web中的脚本代码嵌入,从而达到了恶意攻击用户的目的。
简单的说
1.普通用户A提交正常内容,该内容显示在另一个用户B的网页上,没有任何问题。
2.恶意用户H提交恶意内容并将其显示在另一个用户B的网页上,随意篡改B的网页。
导致XSS的几点要点:
1.恶意用户可以提交内容
2.提交的内容可以显示在其他用户的页面上
3.这些内容尚未过滤,直接在其他用户页面上运行
CSRF攻击是让用户在不知情的情况,冒用其身份发起了一个请求:
CSRF是跨站点的请求伪造(Cross-Site Request Forgery)。像XSS攻击一样,存在巨大的危害。
你可以这样理解:攻击者窃取了你的身份,并以你的名义发送了恶意请求。该请求对服务器完全合法,但是它已完成了攻击者期望的操作,例如用你的名义发送电子邮件,发送消息,窃取你的帐户,添加系统管理员,甚至购买商品,虚拟货币转帐等。
黑客:老朋友呀,这个网址里面有你的高中合影哎?
你:真的啊,我看看 。
黑客:哈哈,你的靶场被我种了一颗瓜了~
你:不会吧,你怎么做到的?
黑客:你是不是点击了网址?
你:shit,这也会中招啊 !
XSS本质上是Html注入,类似于SQL注入。
SQL,HTML和人类语言都是指令他们和数据混合在一起,存在注入的风险(程序会基于分隔符和标签识别指令和数据,不同于我们普通人类是根据说话的语境、语义和我们而定日常生活经验判断吸收)。
例如,当注册用户时,用户输入“王二麻子”并提交,服务端会生成“ <p>欢迎新用户,王二麻子</p> ”传给浏览器。如果用户输入"<script>alert('逗你玩')<script>",服务端会生成 “<p>欢迎新用户,<script>alert('逗你玩')<script></p>”,输入内容就会被浏览器识别为指令执行,这就是XSS注入;
同理,小偷也是利用了这个漏洞,输入一个有特殊含义的词语作为名字,被其他客户端识别为指令,从而完美的完成了一个存储型XSS注入攻击。