zoukankan      html  css  js  c++  java
  • 重新整理 .net core 实践篇————防跨站脚本攻击[四十]

    前言

    简单整理一下跨站脚本攻击。

    正文

    攻击原理是这样子的:

    这种攻击被攻击的面挺多的,比如说只要有一个可以让用户输入的注入脚本就都是一个问题。

    1. 给网站注入脚本

    2. 然后用户访问给网站注入的脚本

    3. 脚本里面的请求都是对攻击者站点的的请求

    4. 用户信息就被拿走了

    上面这样将可能有点蒙,举一个以前的例子哈。

    有一个站点,有一个上传功能,但是上传功能没有限制,被别人注入一个一个index.html页面,里面是登录注册。

    然后用户通过某些链接访问了这个index.html,后面的请求都是访问攻击者的站点的请求,然后就被攻击了。

    如果这个index.html是一个充值或者登录,那么还是非常危险的,那么如何来做点防护措施呢?

    1. 对用户的提交内容进行验证,拒绝恶意脚本

    2. 对用户的提交内容进行编码,urlEncoder、javascriptEncoder

    3. 少用HtmlString 和 HtmlHepler.Raw

    4. 身份信息cookie 设置为httponly.

    5. 避免使用path 传递带有不受信的字符,使用query 进行传递

    前面两个都是防范的,第三个基本前后端分离也没啥人用,第四个是这样子的,前文提及到的cookie安全问题,因为如果是在同域名的情况下,注入的脚本是可以读取到cookie信息的,那么就被攻击到,故而设置httponly,处于js不可读状态。

    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
    {
    	options.Cookie.HttpOnly = true;
    })
    

    设置HttpOnly如上。

    如果要从根源上解决,就要避免被注入脚本,这个可以使用一些框架,或者和安全公司合作。

    下一节跨域请求的攻击问题。

  • 相关阅读:
    Postfix邮件服务器搭建及配置
    利用linux漏洞进行提权
    NFS部署和优化
    LAMP环境搭建
    Apache2.4.6服务器安装及配置
    linux笔记_防止ddos攻击
    CentOS6.5恢复误删除的文件
    linux计划任务
    linux软连接和硬链接
    linux用户和用户组的基本操作
  • 原文地址:https://www.cnblogs.com/aoximin/p/14993219.html
Copyright © 2011-2022 走看看