又称XSRF,攻击者盗用用户身份,发送恶意请求。【冒充用户发起请求(在用户不知情的状况下),完成一些违背用户意愿的请求(如恶意发帖,删帖,改密码,发邮件等)】php
用户登陆受信任网站A,网站A下发cookies,在未关闭A网站页面状况下,访问B网站,网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A,因而,便带着网站A下发cookies完成请求
注:合法用户(C)、存在漏洞网站(A)、攻击网站(B)
html
以你名义发送邮件,发消息,盗取你的帐号,甚至于购买商品,虚拟货币转帐等
我的隐私泄露以及财产安全受到威胁、网站信誉受到影响前端
攻击者能够利用 web应用的漏洞或缺陷之处,向页面注入恶意的程序或代码,以达到攻击的目的web
攻击者经过各类办法,在用户访问的网页中注入恶意脚本,让其在用户访问网页时在其浏览器中进行执行,从而达到恶意攻击用户的特殊目的ajax
反射性XSS
经过给用户发送带有恶意脚本代码参数的URL,当URL被打开时,特有的恶意代码被html解析,执行。
特色是非持久化,必须用户点击特定参数的连接才能引发数据库
存储型XSS
XSS代码提交给网站 -> 网站把XSS代码存储进数据库 -> 当该页面再次被访问时服务器发送已经被植入XSS代码的数据给客户端 -> 客户端执行XSS代码segmentfault
基于DOM的XSS
DOM中的可被用户操纵的对象,若是DOM中的数据没有通过严格确认,就会产生漏洞XSS后端
身份盗用,钓鱼欺骗、垃圾信息发送跨域
dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户没法获得服务器响应。而且经过携带过程的 cookie信息可使服务端返回400开头的状态码,从而拒绝合理的请求服务。浏览器
对数据进行转义,针对富文本设置白名单,使用CSP
具体作法:
XSS利用站点内的信任用户,而CSRF则经过假装来自受信任用户的请求来攻击受信任的网站
XSS是服务器对用户输入的数据没有进行足够的过滤,致使客户端浏览器在渲染服务器返回的html页面时,出现了预期值以外的脚本语句被执行。
CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,致使攻击者能够利用用户的Cookie信息伪造用户请求发送至服务器
是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)它容许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
最经常使用,主要是后端配置
实现此功能很是简单,只需由服务器发送一个响应标头便可。
如:php文件中 header('Access-control-allow-origin:*') 注:ajax xhr.open(method, url, async) async[true: 异步]
若是须要携带cookies发送请求跨域
后端须要在header 中添加
Access-Control-Allow-Credentials: true
前端在发送请求时也须要设置,假设使用的是XMLHttpRequest对象
xhr = new XMLHttpRequest(); xhr.withCredentials= true;
ps:首发于个人segmentfault 前端解决跨域总结,之后可能会把博客/笔记迁入到segmentfault~~~