转义(escape)、校验与编码(encode)

转义(escape)、校验与编码(encode)

转义(escape)、校验与编码(encode)_第1张图片

原则: 对输入进行转义,对输出进行校验和编码
基于DOM的跨站点脚本
JS通过DOM方式输出到HTML元素相关内容时,需要做HTMLEncode
JS通过DOM方式输出到JS元素相关内容时,需要做JavaScriptEncode
JS对所有输入进行转义和检查
使用.innerHtml时,如果只是要显示文本内容,必须在innerHtml取得内容后,去除HTML标签
客户端对页面的任何用户输入进行HTML转义和校验
服务端对客户端传入的用户数据进行进行HTML转义

转义(escape)

对输入直接转义会不会导致放入数据库的数据变为转义后的码
转义工具

<         <
>         >
"         "
'         '
&         &
/         F

一种方案

function htmlEncode(text) {
    var encode = $('
').text(text).html(); return encode; }

直接进行转义

function htmlEncode(str){
    var temp = "";
    if(str.length == 0) return "";
    temp = str.replace(/&/g,"&");
    temp = temp.replace(//g,">");
    temp = temp.replace(/\s/g," ");
    temp = temp.replace(/\'/g,"'");
    temp = temp.replace(/\"/g,""");
    temp = temp.replace(/\//g,"/");
    return temp;
}

转义库进行转义

JS对所有的输入利用转义库进行转义
JQuery Html Encoding、Decoding
原理是利用JQuery自带的html()和text()函数可以转义Html字符
虚拟一个Div通过赋值和取值来得到想要的Html编码或者解码

JQuery Html Encoding、Decoding

原理是利用JQuery自带的html()和text()函数可以转义Html字符
虚拟一个Div通过赋值和取值来得到想要的Html编码或者解码



                    
                    

你可能感兴趣的:(安全与漏洞防护,前端,java-ee)