最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 关于XSS和CSRF

    正文概述 掘金(元气少女阿宅)   2021-02-03   741

    常见的web安全的涉及内容

    • XSS攻击

    • CSRF攻击

    • SQL注入

    • HTTP中间人

    • 密码安全

    • 传输安全


    XSS攻击

    什么是XSS

    根据攻击来源XSS攻击可分为三种类型

    1. 反射型
    2. 存储型
    3. DOM型
    反射型

    反射型XSS是把用户输入的数据(不可信数据)从服务器反射给用户浏览器,当用户的输入或者一些用户可控参数未经处理地输出到页面上,就容易产生xss漏洞。

    攻击流程

    漏洞常见于通过url传递参数的功能,如搜索等。攻击者构造一个带有恶意代码的url,当用户打开带有恶意代码的url,网站服务端将恶意代码从url中取出,拼接在HTML中返回给浏览器,用户浏览器解析后恶意代码也会执行,恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行操作 关于XSS和CSRF

    先来看一个简单的搜索:例如百度,发现我们的搜索词,会挂在链接上,而且会在搜索框中展示

    关于XSS和CSRF

    假设有一个没有做过XSS防范的网站,我们将链接写为:

    https://www.baidu.com/s?wd=<script>alert(1)</script>
    

    这时发现因为网站没有做XSS过滤,我们写过的一些东西都会被执行到页面之中

    存储型

    存储型(或HTML注入型/持久型)XSS攻击不需要用户点击特制链接,攻击者仅需要提交攻击代码到一个网站上其他用户可能访问的地方,比如用户评论、留言板等,当用户访问时攻击代码自动执行

    攻击流程

    关于XSS和CSRF

    假设有一个没有防范的网站,有一个评论的功能,如果输入一段可执行的js代码存在数据库,用户查看时,内将容插入到dom中执行这段代码 关于XSS和CSRF

    存储型与反射型漏洞的区别是:存储型XSS恶意代码存在数据库中,反射型XSS的恶意代码存在url中

    DOM型

    DOM型XSS是通过修改页面的DOM节点形成的。攻击者构造一个含有恶意代码的url,当用户打开时前端取出url中的恶意代码并执行,攻击者就可以窃取用户信息或者冒充用户行为

    假如我们页面中有一个img元素,他的图片链接是取的我们的页面参数id拼合而成,正常链接

    http://localhost:9527/index?id=1
    

    此时假如页面没有做过防范,我们将链接替换为

    http://localhost:9527/index?id=1" onerror="alert(document.cookie)
    

    此时查看页面元素

    关于XSS和CSRF

    当图片加载失败时就会执行onError方法


    如何防范XSS攻击

    通常来说,对于XSS攻击有一些通用的防范方案,简单的介绍几种常见的防范方案

    1. 输入检查。对于用户的输入进行检查、转义、过滤等。建立可信任的字符和html标签白名单,对于不在白名单吧内的字符或者标签进行过滤或编码
    2. 输入长度控制。对于不可信的输入应该限定一个合理的长度,虽然不能完全防止但可以增加攻击的难度
    3. 设置HttpOnly,浏览器将禁止页面的JavaScript访问带有HttpOnly属性的cookie,来防止恶意脚本通过document.cookie访问到用户隐私数据
    4. 现在主流浏览器内置了防范XSS的措施,如内容安全策略(CSPdeveloper.mozilla.org/zh-CN/docs/…)

    CSRF攻击

    关于XSS和CSRF

    攻击步骤:

    1. 首先用户C浏览并登录了受信任站点A

    2. 登录信息验证通过以后,站点A会在返回给浏览器的信息中带上已登录的cookie,cookie信息会在浏览器端保存一定时间(根据服务端设置而定)

    3. 完成这一步以后,用户在没有登出(清除站点A的cookie)站点A的情况下,访问恶意站点B

    4. 这时恶意站点 B的某个页面向站点A发起请求,而这个请求会带上浏览器端所保存的站点A的cookie

    5. 站点A根据请求所带的cookie,判断此请求为用户C所发送的返回数据

    特点:

    1.攻击一般发起在第三方网站,而不是被攻击的网站。

    2.攻击是利用受害者在被攻击网站的登录凭证,冒充受害者的操作,预测出被攻击网站的接口参数进行请求伪造


    CSRF防御方法

    通常来说对于CSRF攻击有一些通用的防范方案,简单介绍几种常用的方式

    SameSite属性

    Cookie的SameSite属性用来限制第三方Coookie,该属性设置 Cookie 不随着跨域请求发送,可以设置三个值: Strict\Lax\None

    Strict

    完全禁止第三方Cookie,跨站点时,任何情况下都不会发送Cookie,也就是说只有当前网页的Url与请求目标一致才会携带Cookie

    Lax

    大多数情况也是不发送第三方Cookie,但是导航到目标网址的Get请求除外

    导航到目标网址的 GET 请求,只包括三种情况:链接,预加载请求,GET 表单。 关于XSS和CSRF SameSite属性: www.ruanyifeng.com/blog/2019/0…

    同源检测

    在http协议中,异步请求会携带两个Header,用于标记来源域名。

    • Origin Header
    • Referer Header

    关于XSS和CSRF

    这两个Header在浏览器发起请求时大多数情况会自动带上,并且不能由前端自定义,服务器可以通过解析这两个人Header中的域名,确定来源域名。通过校验来源域名,可以知道请求是否从本站发出,我们可以通过拒绝非本站发出的请求来避免CSRF攻击

    服务端验证 Token 是否正确

    服务器下发一个随机 Token,每次发起请求时将 Token 携带上,服务器验证 Token 是否有效。

    验证码

    CSRF攻击往往是在用户不知情的情况下伪造请求,而验证码会强制用户必须与应用进行交互才能完成最终请求,而因为CSRF攻击无法获取到验证码,就可以有效的防范攻击,但是出于用户体验考虑不能给网站所有操作都加上验证码,所以验证码只能作为防御CSRF的辅助手段


    起源地下载网 » 关于XSS和CSRF

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元