• 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携带参数谨慎使用
    • 我们无法做到彻底阻止,但是能增加黑客攻击成本,当成本与利益不符时自然会降低风险
  • 相关阅读:
    java:解析json的几种方式
    Java框架(四)--Spring AOP面向切面编程(1)--初识Spring AOP
    数据结构与算法_part_8_二叉树
    进程内优雅管理多个服务
    Spring 中注入 Bean 的各种骚操作做
    Istio网关流量转发
    Docker数据存储&容器之间数据共享
    拼多多众多 API 接口皆可使用
    JVM(2)
    很多人都在考的PMP认证到底有什么用?考试内容难不难?
  • 原文地址:https://blog.csdn.net/m0_59070120/article/details/126953006