zoukankan      html  css  js  c++  java
  • JQuery安全分析

    JQuery安全分析:

    JQuery的风险均来源于对输入的数据没有进行有效性检验。客户端的Javascript需要检验:来源于服务器的数据、来源于当前页面的用户输入,服务器端需要检验来源于用户端的数据.

    JQUERY的下列方法存在XSS的风险,在使用前应该对输入的内容进行编码或检查

    .html(val)

    $("#MyH").html("as>/" <img src=abc.jpg onerror='alert(0);'>alert('s');");

    .append(val)

    $("#MyH").append("<strong>Hello</strong><script>alert(3);");

    . prepend(val)

    prepend("<strong>Hello</strong><script>alert(3);");

    . before(val)

    //$("#MyH").before("<strong>Hello</strong><script>alert(3);");

     

    .replaceWith(val)

    //$("#MyH").replaceWith("<strong>Hello</strong><script>alert(3);");

    . after(val)

    $("#MyH").after("<strong>Hello</strong><script>alert(3);");

    JQUERY在AJAX时如果设定返回结果为JSON,则有JSON投毒的风险

    原因是:

    JQuery处理JSON采用的是以下代码

    如果服务器返回的数据为

              string ms = "{/"total/":/"400/",/"results/":{/"Name/":/"[//aa///"{//u003c//u003e}

    /",/"Age/":null,/"School/":/"acb;/",/"Address/":null,/"Memo/":/"/"}});alert(23);//";

    则会出现JSON中毒

    简单的Javascript测试 JSON中毒

    var s=eval("({/"name/":/"sss/"});alert(23);({/"name/":/"sss/"})");

    alert(s.name);

    处理办法:使用JSON2.js的JSON解释方法代替JQUERY的该部份内容,或修改JQuery的eval部份,增加对JSON String的有效检验

    JSON为什么是安全的

    JSON采用了一系列的方法去检查eval执行的表达式是否是安全的,是否是只包含有JSON正确格式的数据,所以JSON2.JS来解析JSON串是安全的。

  • 相关阅读:
    4.12 IDEA 如何新建 Java 项目 (图文讲解, 良心教程)
    4.11 AndroidStudio快捷键总结
    4.9 Android AndroidX的迁移
    4.8 build.gradle中正确地导入RecyclerView依赖
    4.6 构建之法7
    4.5 构建之法6
    4.4 构建之法5
    4.3 构建之法4
    4.2 构建之法3
    4.1 构建之法2
  • 原文地址:https://www.cnblogs.com/hjtdlx/p/3349114.html
Copyright © 2011-2022 走看看