cookie实现免密登录和ssh实现免密登录有什么不同点吗?

今天在服务器上配置了自己电脑的public key,但是还是不能直接免密码登录,

这个家目录的权限原先是770,修改成750后,可以免密登录

问题目录(请善用CTRL+F):

  • SYN_RCVD 状态连接的最大个数:”,则以“..cn
    • LDNS也会先看一下有没有.cn的缓存,有就直接返回,没有,就继续看一下.cn,,的权威域名服务器的地址
    • 如果有,则直接去对应的服务器那里进行解析

(),并且提供带有攻击者公钥的假证书。通常,攻击者无法让任何合法的CA来对一个不受攻击者控制的域名的证书进行签名,因此浏览器会检测并阻止这种攻击行为。

  • 但是,如果攻击者可以说服用户安装一个新CA的根证书到浏览器当中,浏览器就会信任攻击者提供的由这个合法CA签发的假证书。通过这些假证书,攻击者可以模仿任何网站,进而可以篡改网站内容、记录用户在网站上的操作或发表的内容等。
  • 因此,用户不应该安装根CA证书(受信任证书),因为这样就会将原本安全的通信暴露无遗,导致通信被劫持或篡改而不被用户所感知
  • -G参数用来构造 URL 的查询字符串

  • 省略-G会发送post请求
  • 感觉命令太多了,可能记不住,平常还是使用postman较多

  • 默认浏览器关闭的时候被销毁,默认值为负值,如果为正值,那么时间到了就自动失效,0则直接删除
  • 服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession
  • 否则,从最后一次访问起,过了30分钟会自动清除,如果中途有访问,则刷新时间

  • 如果禁用了cookie怎么办?
  • 或者通过表单隐藏字段来传送sessionID
    • socket通信的服务端实现,主要用于监听服务端口
  • accept:阻塞等待客户端连接
  • close:断开连接,释放端口
  • 在创建的时候,需要指定目标IP和端口号
  • BIO是面向流的,accept、读写数据都会阻塞

  • 保证TCP可靠性的机制之一

    • 每次发送一个分组后,停止发送并等待接收方响应
    • 一段时间内没有收到确认,就重传
    • 直到收到确认才会发送下一个分组
      • 信道的利用率低,等待时间久
    • 利用滑动窗口,维护了无需接收方确认也可以继续发送的数据范围

78. 服务端出现大量的timewait的原因和解决方法?

  • 通过上述命令可以查看不同状态下的TCP连接的数目

    • 大量连接处于timewait状态时,新建立TCP连接会报错,错误为“接口已被占用”
    • 本地端口数目上限为65536(端口号16位)
  • 在HTTP请求中,如果connection头部的取值设置为close,那么基本都由服务端主动关闭连接
    • 服务端处理完请求后主动关闭连接
  • 在四挥关闭连接机制中,为了确保确认报文能够正确送达以及本次连接中的报文能全部消亡,会设置timewait状态的时间为2倍的最大报文存活时间(一共大概为4分钟)
    • RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等
    • connection 设置为 -alive,即尽量使用长连接(目前版本的http协议基本上都是长连接)
    • 初始序列号比TW老连接的末序列号大
    • 如果使能了时间戳,那么新到来的连接的时间戳比老连接的时间戳大
  • 增加服务器,进行负载均衡

79. 常见应用层、运输层、网络层协议,以及硬件如路由器位于哪一层?

80. 以太网报文格式?

    • 网卡的硬件地址(MAC地址),网卡出厂时固化
    • 以太网帧中数据长度最小为46字节,最大为1500字节
    • 不够长需要进行填充,太长了需要进行拆分
    • 1500字节是指有效负载的长度,不包括首部长度
  • 前者是应用层协议,后者是传输层协议
  • HTTP规定每段数据以什么形式表达才能被另外一台计算机理解
  • TCP则是规定数据应该怎么传输才能稳定、高效地在计算机之间传输
  • 应用层协议的通信依赖于传输层协议

82. HTTP常用首部字段有哪些?

    • 表明客户端浏览器能够接收的媒体类型资源
    • 表明客户端浏览器接收的编码方式
    • 表明客户端浏览器接收的语言
    • 如果使用缓存,后续访问相同页面则直接访问缓存
    • 告诉服务器从哪个页面链接进来
    • 请求时服务器的ip和端口号
    • 服务器告诉客户端本次响应体数据格式以及编码格式
    • 用于服务器向客户端发送 sessionID
    • 服务端向客户端设置cookie
  • 接收到包在进行校验的时候出错
  • 数据包在网络中超出最大存活时间(ttl)
  • 路由器接收分组数量达到上限后,会丢弃多余分组
  • 对于永久重定向,如果旧的URI保存为书签了,那么永久重定向会根据响应内容将标签的URI修改。临时重定向是不会修改的

  • 使用302重定向有可能被判断为网站URL劫持,一个网站A的功能就是临时重定向到网站B,由于网站A的URL可能更加简洁,导致搜索引擎可能会判断网站A的网址更加合适,这时候搜索引擎的结果仍然是网站A,但是所用的网页内容却是网站B的

85. TCP的保活计时器的作用

  • TCP的Keepalive,用来检查对方是否有发生异常,如果发生异常就即时关闭连接
  • 当连接空闲一段时间,就会发送探测报文,判断对方的响应是否符合预期,如果不正常就主动关闭连接
  • 使用SO_KEEPALIVE的套接字选项——相当于心跳包,一段时间没有响应就断开连接
  • 所谓的连接其实只是双方都维护了一个状态,通过每一次通信来维护状态的变更,使得看起来好像有一条线关联了对方。

87. OSI七层模型的含义和作用是什么?

    • 包含了网络通信的基础设施
    • 包含了节点设备、网络硬件、设备接口、电缆协议等技术,主要功能是用来传输比特流
    • 对比特流进行分组,规定不同组所代表的含义
    • 允许局域网中各个节点彼此相互通信。建立了线路规划、流量控制和错误控制的基础
    • 数据的传输格式、节点间流动的数据量大小
    • 数据单元是帧,包含帧头、主体和帧尾
      • 帧头:通常包括源节点和目的节点的 MAC 地址
      • 主体:由要传输的比特组成
      • 帧尾:包括错误检测信息
    • 帧的大小有限制,限制值为最大传输单元(MTU)
    • 判断计算机是否处于同一个网络中,实现不同网络之间的通信
    • 数据单元是数据包,会封上IP地址
    • ARP协议既属于数据链路层,其实也属于网络层,因为IP地址只在这层能够使用,因此需要在该层通过ARP协议定位MAC地址
    • 实现端口到端口通信,将网络中的数据正确传送给不同的应用程序
    • 会话层负责初始化、维持并终止两个用户应用程序之间的连接
    • 这个连接可用是客户端与服务器模型,也可以是请求与响应模型(会话期间可能会有多个请求和响应)
    • 负责数据格式,比如字符编码与转换,以及数据加密
    • 该层负责确保第七层中的用户程序可以成功消费数据,确保最终数据的展示
    • 例子:TLS/SSL协议位于第六层,TLS是SSL的继任者
    • 负责提供应用程序运行时所需要的服务和功能

88. 常用TCP选项有哪些?

    • 发送方在报文中放置时间戳,接收方在接收确认中返回该数字,允许发送方为每一个ack计算RTT
    • 在复用time_wati接口的时候,如果开启时间戳选项的话,那么新连接的时间戳应该大于旧连接的时间戳
  • 最大报文传输字段(MSS)
    • TCP数据包每次传输的据分段大小
  • 选择确认选线(SACK)
    • 快速重传中,接收方用来通告发送发自己的缓存地图

89. 半打开和半关闭的区别?

    • 连接中的一方已经发送了fin报文,等待另外一方发送
    • 连接中的一方已经崩溃下线了,另外一端还不知道
  • 根本原因是服务端在四挥的最后流程中,没有正确close掉连接

  • 也有可能全连接队列过长,还没有处理,就被对方关闭了

    • 检查代码中是否有死循环或者耗时任务导致没有正确close掉连接

91. TCP异常原因有哪些?

  • 试图与一个不存在的端口建立连接
    • 虽然服务端的进程没有启动,但是操作系统会帮我们自动响应RST给客户端
  • 试图与一个不存在的主机上面的某端口建立连接
    • 如果connect没有设置超时的话,那么客户端会继续尝试发送syn报文一段时间,直到TCP的保护机制返回错误
    • 为了避免多次发送请求带来的延时问题,可以在connect函数中设置超时时间
    • server进程无法响应任何请求,连接能正常建立,但是发送的数据会一直保存在缓冲区,永远不会返回结果
    • 这时候相当于服务端主动关闭连接,走正常的四挥流程
  • telnet命令可以用来判断远端服务器指定端口的网络连接是否可达

  • 这个一般用于服务端,打开某个端口
  • 客户端连接服务端的某个接口
  • 连接成功后可以在客户端发送数据给服务端
  • 该工具同样可以检测服务器的端口的网络连接是否可达

      • -z表示不发送任何数据包,tcp三次握手后自动退出进程
      • -v用来输出更多详细信息
    • 还可以通过管道的方式将命令发送给服务器
      • 部分介绍可以查看linux面试题部分
      • 常用的选项就是-anp,显示所有套接字,禁止使用端口别名,显示占用端口的进程
      • 图形化界面抓包软件,一般Windows下使用较多
    • 命令行网络流量分析工具
      • 用来指定网卡,通过ifconfig来查看有哪些网卡可用
      • any 的话表示任意网卡
    • 将主机名替换为ip地址
    • 在前述基础上,不会将端口名替换为协议名,使用端口本来的名称
    • 获取报文中的前多少个字节,一般配合-A使用
    • 如果想显示全部就使用 -s 0
    • 只抓5个包就退出了,一般用于交互频繁的服务器上抓包
    • 将数据报文件输出到文件
    • 生成的pcap文件可以使用wireshark 打开进行更加详细的分析
    • 显示seq和ack的绝对序号
    • host选项,用来指定要捕获的特定IP的包,这个IP既可以是源地址也可以是目标地址
  • 配合dst可以只抓取80端口收到的包
  • 可以抓取21-23区间上所有端口的流量
      • -A选项,以ASCII 格式查看报文内容
      • 常用的HTTP协议中传输的json、html文件都可以使用这个选项
    • 同时使用HEX和ASCII显示报文内容
  • 利用布尔运算符组合出复杂的过滤器
    • 如果用到特殊字符'()'的话,就需要使用单引号将复杂组合条件包起来
  • session在服务端保存用户的会话信息,当用户并发数大的时候,服务端的压力较大

  • 可以考虑将部分数据使用cookie的方式存储到客户端浏览器

  • 但是cookie本身不支持大量数据存储,而且使用cookie传输会增加网络压力,此时可以使用HTML5技术,使用浏览器的localStorage和sessionStorage来解决问题

  • 当然亦可以在后台引入分布式存储机制来解决

  • 其中Token用来将用户信息保存在客户端,

  • 信息本身通过添加数字签名的方式来防止被篡改

  • token的数据一般保存在HTTP Header “X-Auth-Token”中,客户端在拿到数据后就可以将其保存在本地

  • JWT本身由三个部分组成:头部,载荷,签名

  • 头部声明签名:对称或者非对称,推荐使用非对称

  • 载荷可以保存特定用户信息,但是不能保存私密信息,因为是通过明文传输的

  • 签名根据头部对头部和载荷数据生成一个签名

  • 使用JWT可以比较容易地实现单点登录

  • 认证中心保存私钥,其它服务保存公钥,当请求携带token访问时,使用公钥进行验证,合理即可使用,否则重定向到认证中心

  • 认证功能这部分可以集成到网关API

96. CSRF 跨站点请求伪造 了解吗?

  • 攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
  • 大多数用户并不能保证:
    • 不能保证关闭浏览器了后,本地的Cookie立刻过期,上次的会话已经结束
    • 不能保证登录了一个网站后,不再打开一个tab页面并访问另外的网站
  • 由于cookie的信息在访问对应域名的网站的时候会自动携带过去,因此就可以在用户无感的情况下直接攻击目标网站

96.1 有哪些攻击类型?

    • GET类型的CSRF利用非常简单,只需要一个HTTP请求,一般会这样利用:在受害者访问含有这个img的页面后,浏览器会自动向
    • 这种类型的CSRF利用起来通常使用的是一个自动提交的表单,访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。POST类型的攻击通常比GET要求更加严格一点,但仍并不复杂。任何个人网站、博客,被黑客上传页面的网站都有可能是发起攻击的来源,后端接口不能将安全寄托在仅允许POST上面
    • 这种需要用户点击链接才会触发。这种类型通常是在论坛中发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击

96.2 特点是什么?

  • 攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生
  • 攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。
  • CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。
  • token;token 验证的 CSRF 防御机制是公认最合适的方案。但若网站同时存在 XSS 漏洞的时候,这个方法也是空谈
    • token不放cookie(一般form表单加个hidden属性的input标签来存放)csrf就没法获取token,这样我们就可以通过检测发送过来的数据包中是否有正确的token值来决定是否响应请求。
    • 可以考虑直接使用sessionid作为token,不过通过隐藏表单项提交作为验证手段
  • 验证码;强制用户必须与应用进行交互,才能完成最终请求。此种方式能很好的遏制 csrf,但是用户体验比较差
  • Referer check;请求来源限制,此种方法成本最低,但是并不能保证 100% 有效,因为服务器并不是什么时候都能取到 Referer,而且低版本的浏览器存在伪造 Referer 的风险
  • XSS全称cross-site scripting(跨站点脚本),是一种代码注入攻击,是当前 web 应用中最危险和最普遍的漏洞之一。攻击者向网页中注入恶意脚本,当用户浏览网页时,脚本就会执行,进而影响用户,比如关不完的网站、盗取用户的 cookie 信息从而伪装成用户去操作,危害数据安全。

  • 存储型XSS(持久性跨站攻击)

    • 通过表单输入(比如发布文章、回复评论等功能中)插入一些恶意脚本,并且提交到被攻击网站的服务器数据库中。当用户浏览指定网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台。
    • 与反射型 XSS 相比,该类的攻击更具有危害性,因为它影响的不只是一个用户,而是大量用户,而且该种类型还可进行蠕虫传播。

97.1 如何防范措施?

  • 对输入数据进行“消毒”

    • 在输入输出时对数据进行转义,比如<转义成<,这样脚本就运行不了了
    • 录入数据设置白名单,比如javaWeb,设置过滤器过滤特殊字符
    • 页面限制用户输入数据类型,比如用户输入完年龄后验证输入内容只能是数字

我要回帖

更多关于 ssh 免密登录 的文章

 

随机推荐