美文网首页
JS题 实际问题

JS题 实际问题

作者: YouKnowznM | 来源:发表于2017-11-23 11:36 被阅读0次
  • 点击穿透

    这是因为在移动端浏览器,事件执行的顺序是touchstart > touchend > click
    而click事件有300ms的延迟,当touchstart事件把B元素隐藏之后,隔了300ms,浏览器触发了click事件,但是此时B元素不见了,所以该事件被派发到了A元素身上
    如果A元素是一个链接,那此时页面就会意外地跳转
    
  • 事件机制

    捕获,到达目标,冒泡
    
    现代浏览器:addEventListener / evt.target,无on,有捕获和冒泡,参数3控制在捕获还是冒泡阶段触发事件
    旧IE:attachEvent / event.srcElement,带on,只有冒泡阶段
    
  • XSS

    发生在:
    1. 数据从一个不可靠的链接进入到一个web应用程序
    2. 没有过滤掉恶意代码的动态内容被发送给web用户
    
    前端防范:
    1. 字符串类型的数据,需要针对<、>、/、’、”、&五个字符进行实体化转义
    function encodeHTML (a) {
      return String(a)
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;")
        .replace(/'/g, "&#39;");
    };
    2. 在响应头或页面<meta>内设置 Content-Security-Policy
    3. 设置响应头的 HttpOnly ,使得 cookie 不能使用 JavaScript 经由  Document.cookie 属性、XMLHttpRequest 和  Request APIs 进行访问
    
    后端防范:过滤所有的‘<’和‘>’字符,确保从后端而来的数据并不带有任何的html标签,xss的危险在于有不可预料的前端脚本,但是值得注意的是,不单只有script标签是可以运行脚本的,任何的html标签都可以加上类似onclick,onload这样的事件也都可以运行脚本,所以需要过滤所有的‘<’和‘>’字符
    

相关文章

  • JS题 实际问题

    点击穿透这是因为在移动端浏览器,事件执行的顺序是touchstart > touchend > click而cli...

  • 任务11

    第一题 http://js.jirengu.com/mekep第二题 http://js.jirengu.com/...

  • js题

    1、 2、 3、 4、

  • js题

    1、数据类型 JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Numb...

  • js题

    1.闭包的理解,闭包的原理,那些地方会用到,闭包的缺点2.跨域的方式(jsonp,cors),对跨域了解吗,jso...

  • js题

    以下代码中val、data、data2、x的值分别是什么? 为什么 var a = 1, b = 2, c = 3...

  • js题

    1.下面代码的运行,输出的结果是: A:[ 'name', 'age' ]B:[ 'name', 'age', '...

  • js题

    ### 简答 1:如何理解原型? 1.没创建一个对象时都会关联另一个对象,这个对象就是原型对象。创建出来的对象...

  • 12.27

    8:30-11:00,分数应用题:1了解分数应用题倍数关系的实际问题。2准确清晰的确定单位1。3采用线段图的方法直...

  • 第41期 TypeScript 期中考试现在开始 & 一起来玩玩

    MVC的不足与Flux的崛起 在前几篇中,我演示了一个前端 Backbone.js MVC 框架用于解决实际问题的...

网友评论

      本文标题:JS题 实际问题

      本文链接:https://www.haomeiwen.com/subject/vkqzvxtx.html