多是东半球最详解的web前端平安相干学问

XSS

XSS全称是跨站剧本进击(Cross Site Scripting),所以我们能够缩写成CSS,下面我们最先引见CSS,先讲挑选器。听着是不是是很新鲜,为了与层叠样式表辨别开来,我们挑选XSS做为其缩写。 XSS进击能猎取页面数据、cookie、挟制前端逻辑、发送要求,盗取网站恣意数据、用户材料、诳骗用户,所以是我们迥殊须要注重的前端安全题目。 我在腾讯云上架了一个网站,特地用来承接种种进击,欢迎来玩。 XSS进击能猎取页面数据、cookie、挟制前端逻辑、发送要求,盗取网站恣意数据、用户材料、诳骗用户,所以是我们迥殊须要注重的前端安全题目。

XSS进击分为反射型XSS进击,直接经由历程URL注入、存储型XSS进击 存储到DB后读取时注入。

XSS进击能够泉源

能够经由历程 动态HTML节点内容、 HTML属性、Javascript、 富文原本对页面举行进击。

浏览器自带防备步伐

X-XSS-Protection, 0

http://123.207.46.233/?from=<script>alert(1)</script>

<img src="2" onerror="alert(1)">

http://123.207.46.233/?from=111";alert(1);"

发出要求时,XSS代码出现在URL里,作为输入提交到服务器端,服务器端剖析后相应,XSS代码随浏览器一同传回给浏览器,末了浏览器剖析实行XSS代码。这个历程像一次反射,故叫反射性XSS。

localhost:3000/?xss=<img src=”null” onerror=”alert(1)”>

《多是东半球最详解的web前端平安相干学问》

浏览器防备功用很有线,只能接见反射型进击且不能防备来自富文本的进击。

HTML内容和属性转译

function html_encode(str) {
    if (!str) {
        return str;
    }
     return str.replace(/[<>&"']/g, (all) => {
         return {
             '<': '&lt;',
             '>': '&gt;',
             '&': '&amp;',
             '"': '&quot;'
             "'": '&#39'
         }[all]
     });
}

然则用以上的要领并不能处理统统的题目,假如将用于的输入当做一个js变量,我们

var escapeForJs = function(str) {
    if (!str) {
        return ''
    }
    str = str.replace(/\/g, '\\\\');
    str = str.replace(/"/g, '\\"');
    return str;
}

富文本防备

运用黑名单风险迥殊大,我们只能运用白名单来过滤。我们起首要知道这个标签是不是正当,其次看标签上的
属性是不是正当。

var cheerio = require('cheerio');
var xssFilter = function (html) {
    if (!html) {
        return '';
    }

    var $ = cheerio.load(html);
    var whiteList = {
        'img': ['src'],
        'font': ['color', 'size'],
        'a': ['href']
    }


    $('*').each(function (index, elem) {
        let name = elem.name;
        if(!whiteList[name]) {
            $(elem).remove();
            return;
        }
        for (var attr in elem.attribs) {
            if (whiteList[name].indexOf('attr') === -1) {
                $(elem).attr(attr, null);
            }
        }
    })
}

下面给人人引见一个神器xss模块,var xss = require(‘xss’),满足你对XSS的统统空想。

CSP

Content Security Policy内容安全战略,用于指定哪些内容能够实行。
比方:

Content-Security-Policy: default-src 'self' // 只允许同域的剧本实行

Cookie特征

cookie是用于前端数据存储,后端经由历程http头设置,要求时经由历程http头传给后端,前端能够读写,恪守同源战略(协定、域名、端口悉数一致)。

域名  有效期  途径  http-only  secure(https)  

存储个性化设置
存储未上岸时用户的唯一标识符
存储已上岸用户的凭据
存储其他营业数据

用户ID + 署名

sessionId

cookieID

 署名防串改
私有变化
http-only

CSRF进击

cross site request forgy,跨站要求捏造

用户上岸A网站、A网站确认身份、B网站向A网站提议要求(带A网站身份)

应用用户上岸态
用户并不知情
完成营业要求

禁用第三方的cookie,same-site

经由历程referer

    原文作者:林小新
    原文地址: https://segmentfault.com/a/1190000009876135
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞