• CSRF / XSRF(跨站请求伪造),XSS/CSS(跨站脚本攻击)


    CSRF / XSRF(跨站请求伪造)

    你可以这么理解 CSRF 攻击:攻击者盗用了你的身份,以你的名义进行恶意请求。它能做的事情有很多包括:以你的名义发送邮件、发信息、盗取账号、购买商品、虚拟货币转账等。总结起来就是:个人隐私暴露及财产安全问题。

    /*
     * 阐述 CSRF 攻击思想:(核心2和3)
     * 1、浏览并登录信任网站(举例:淘宝)
     * 2、登录成功后在浏览器产生信息存储(举例:cookie)
     * 3、用户在没有登出淘宝的情况下,访问危险网站
     * 4、危险网站中存在恶意代码,代码为发送一个恶意请求(举例:购买商品/余额转账)
     * 5、携带刚刚在浏览器产生的信息进行恶意请求
     * 6、淘宝验证请求为合法请求(区分不出是否是该用户发送)
     * 7、达到了恶意目标
     */

    防御措施(推荐添加token / HTTP头自定义属性)(同源检测,使用Referer确定来源域名,增加csrf token服务器发送给浏览器的token不存储在浏览器的存储里面,放置在页面上面,每次请求时会携带该token)

    1. 防御措施(推荐添加token / HTTP头自定义属性)

    2. 涉及到数据修改操作严格使用 post 请求而不是 get 请求
    3. HTTP 协议中使用 Referer 属性来确定请求来源进行过滤(禁止外域)
    4. 请求地址添加 token ,使黑客无法伪造用户请求
    5. HTTP 头自定义属性验证(类似上一条)
    6. 显示验证方式:添加验证码、密码等

    XSS/CSS(跨站脚本攻击)

    XSS又叫CSS(Cross Site Script),跨站脚本攻击:攻击者在目标网站植入恶意脚本(js / html),用户在浏览器上运行时可以获取用户敏感信息(cookie / session)、修改web页面以欺骗用户、与其他漏洞相结合形成蠕虫等。

    浏览器遇到 html 中的 script 标签时,会解析并执行其中的js代码

    针对这种情况,我们对特殊字符进行转译就好了(vue/react等主流框架已经避免类似问题,vue举例:不能在template中写script标签,无法在js中通过ref或append等方式动态改变或添加script标签)

    XSS类型:

    • 持久型XSS:将脚本植入到服务器上,从而导致每个访问的用户都会执行
    • 非持久型XSS:对个体用户某url的参数进行攻击

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

    • 现代大部分浏览器都自带 XSS 筛选器,vue / react 等成熟框架也对 XSS 进行一些防护
    • 即便如此,我们在开发时也要注意和小心
    • 对用户输入内容和服务端返回内容进行过滤和转译
    • 重要内容加密传输
    • 合理使用get/post等请求方式
    • 对于URL携带参数谨慎使用
    • 我们无法做到彻底阻止,但是能增加黑客攻击成本,当成本与利益不符时自然会降低风险
  • 相关阅读:
    解决React遍历每次渲染多个根元素导致无法为元素赋值key的问题
    Spring cloud 多种限流方案
    数据库平滑扩容方案剖析
    LC:最大子数组和
    Unity-四元数
    刷题总结碎碎念
    JAVA中的IO流
    云网融合赋能智慧转型,“天翼云管 ”开启贴身云管家时代
    Android NDK CMakeLists.txt 说明
    C# 绘制图片随机验证码
  • 原文地址:https://blog.csdn.net/m0_59070120/article/details/126953006