美文网首页
xss和csrf分别是什么

xss和csrf分别是什么

作者: darkTi | 来源:发表于2020-07-22 17:24 被阅读0次

    xss

    1、全称Cross-Site Scripting,即跨站脚本
    2、简单来说

    • 用户A提交了正常内容,这个内容正常显示在B的页面上,没有问题;
    • 恶意用户C提交了恶意内容,这个内容也显示在B的页面上,但却能对B的页面肆意篡改;

    3、造成xss的有几个要点:

    • 恶意用户可以提交内容;
    • 提交的内容可以显示在其他用户的页面上;
    • 这些内容没有经过过滤,直接就能运行在另一个用户的页面上;

    4、比方说在有表单输入的地方,用户输入了<script>alert('OK')</script>,服务器没有经过过滤直接保存下来,那么当其他用户访问这个页面时,就会弹出这个提示框;当然xss攻击还能做一些其他更复杂的事情,比如说获取用户的cookie什么的;

    5、预防措施

    • 把“<”和“>”都换成实体符号,可以通过js过滤,也可以在服务器端过滤。

    csrf

    1、全称:Cross Site Request Forgery,即跨站请求伪造;

    2、原理

    • 攻击者构造网站后台某个功能接口的请求地址,诱导用户点击或者使用一些特殊的方法使这些请求自动加载;
    • 那么用户在登录状态下的话,这些请求被服务器接收到就会误认为是用户自己合法的操作;
    • 对于GET形式的接口会很容易被击破,POST形式的接口也不是百分百安全,攻击者他可以去诱导用户进入一个有form表单用post提交参数的页面;

    3、预防措施(采用anti-csrf-token方案)

    • 服务器端收到路由请求时,生成一个随机数,在渲染请求页面时把这个随机数埋入页面(一般是埋入form表单内,<input type='hidden' name='_csrf_token' value='xxx'>);
    • 服务端设置setCookie,把该随机数作为cookie或session种入用户浏览器;
    • 用户在发送get或post请求时要带上_csrf_token参数(对于form表单直接提交即可,因为表单会把所有的input值提交给后台,包括_csrf_token);
    • 服务端收到请求后解析请求的cookie获取_csrf_token的值,与用户请求提交的_csrf_token参数作对比,相等则代表请求时合法的;

    相关文章

      网友评论

          本文标题:xss和csrf分别是什么

          本文链接:https://www.haomeiwen.com/subject/ufdtlktx.html