zoukankan      html  css  js  c++  java
  • 记一次惨烈的电话面试题

    记一次电话面试,丢人啊,整整七道题没一道答对的,好丢人啊。
    挂了电话后就开始进行复盘,web安全方面是完全的知识盲点,查了资料后还是有些懵懂。
    http和https也欠缺。

    1.有一个对象,A.a, A.b , 除了赋值的办法,如何删除或改变这个属性的值。

    删除: delete A.a
    改变这个属性的值:Object.defineProperty()方法

     var person = {
         name: 'Diuren'
     }
     console.log(person.name);    //Diuren
     
     Object.defineProperty(person,'name',{
         value: 'Come on!'
     })
     console.log(person.name);   //Come on!
    
    2.一个变量a=0,除了赋值外,怎么删除这个变量

    方法一: a = null;
    切断变量名的指向,当垃圾回收机制启动事,会自动释放内存。

    这问题涉及了一些js的自动垃圾回收机制

    自动垃圾回收机制: 找出那些不再继续使用的变量,然后释放其占用的内存。
    垃圾回收器每隔固定的时间段就执行一次释放操作。

    a=null 是一个释放引用的操作,这种方法叫解除引用,适用于全局变量或全局对象的属性。

    局部变量会再他们离开执行环境的时候被自动解除引用。

    3.网页里出现了一段广告,不存在于你的代码里,你的解决思路是?
    1. 首先排除是否是网站的问题,如果别人访问干干净净,没有广告,那么可能是你浏览器或者是运营上问题。
    2. 查询NetWork-js中是否有奇怪的js被调用。检查文件是否被修改(包括修改时间)。
    3. 查看是否是js缓存投毒
    4. 检查是否使用的是http,如果是迁入https
    4. 对象有一个属性值,比如A.b = 0; 我怎么做在该属性改变的时候第一时间监控到。

    常用的监听方法:基于 getter 和 setter
    ES5中有一个方法 Object.defineProperty方法,改方法可以修改属性得默认特性,也可以修改一个已存在的属性或定义一个新属性。

    var obj = {}
     
    Object.defineProperty(obj,'a',{
        get:function(){
            return data;
        },
        set:function(newValue){
            data = newValue;
            console.log('set:'+newValue)
        }   
    })
    
    5.你的网页里打开后出现了一片空白,你该怎么做
    1. 先确定内容是否已加载,是加载后不显示还是,还是请求没有返回
    2. 如果内容已加载但显示空白,查看是否路径或文件名问题
    6. https原理

    什么是http?

    超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

    什么是https?

    HTTPS协议 = HTTP协议 + SSL/TLS协议

    HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

    SSL的全称是Secure Sockets Layer,即安全套接层协议,是为网络通信提供安全及数据完整性的一种安全协议。SSL协议在1994年被Netscape发明,后来各个浏览器均支持SSL,其最新的版本是3.0

    资料:https://www.jianshu.com/p/14cd2c9d2cd2

    7.csrf攻击 xss攻击

    xss攻击:跨站脚本攻击(Cross-site scripting)

    CSRF(Cross Site Request Forgery),跨站点请求伪造。

    CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的。

    资料: https://www.cnblogs.com/lovesong/p/5233195.html

  • 相关阅读:
    关于使用HttpModule模块处理登录验证示例
    Request.Url.Query 和 Request.QueryString的区别
    使用Trace.axd 调试ASP.NET
    asp.net网站 页面缓存
    WCF系列之.net(3.0/3.5)Rest使用示例
    解决TFS无法上传Nuget下载的DLL问题
    WCF系列之.net(4.0)使用示例
    WCF系列之.net(3.0/3.5)使用示例
    批量删除MSSQL被挂JS木马语句
    查询你的数据库有没有被木马注入的可能!
  • 原文地址:https://www.cnblogs.com/mlcat/p/11503975.html
Copyright © 2011-2022 走看看