你好,请问如何使用浏览器认证WF?

  1. 以前的项目中,主要解决了什么技术性 难题 ,如果出现问题,你如何迅速找到问题,你遇到问题都是怎么解决的

 根据出现的问题,大概排查出问出问题的几个点,逐个排查, 错误日志- sql查询计划-定位程序错误 reshare

解决秒杀: 集群,redis缓存,rabbitmq队列,关闭评价服务等权重低的服务。

开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能(聊天室,股票交易,微信角标,站内消息):当所连接的客户端变得可用时服务器代码可以立即向其推送内容,

而不是让服务器等待客户端请求新的数据。使用websocket通信,底层是socket (本质是编程接口(API),对TCP/IP的封装,提供了网络通信的能力).

当环境条件合适时,SignalRWebSocket作为底层传输方式的优先实现,当然,它也能很高效地回退到其他技术(长轮询, ServerSendEvent)。同时,SignalR提供了非常良好的Api以供远程调用(RPC) 浏览器中的js代码。

Hubs是基于连接Api的更高级别的通信管道,它允许客户端和服务器上彼此直接调用方法,SignalR能够很神奇地处理跨机器的调度,使得客户端和服务器端能够轻松调用在对方端上的方法。使用Hub还允许开发人员将强类型的参数传递给方法并且绑定模型

  1. 轮询(polling以前的方式)客户端以一定时间间隔中向服务器发送Ajax查询请求大,但是也因此,当服务器端内容并没有显著变化时,这种连接方式将带来很多无效的请求,造成服务器资源损耗。适合并发量小,实时性要求低的应用模型,更像是定时任务。优点:实现最为简单,配置简单,出错几率小. 缺点:每次都是一次完整的http请求,易延迟,有效请求命中率少,并发较大时,服务器资源损耗大
  2. long polling长轮询, 长轮询是对轮询的改进,客户端通过请求连接到服务器,并保持一段时间的连接状态,直到消息更新或超时才返回Response并中止连接,可以有效减少无效请求的次数。属于Comet实现. 优点:有效减少无效连接,实时性较高.缺点:客户端和服务器端保持连接造成资源浪费,服务器端信息更新频繁时,long polling并不比polling高效,并且当数据量很大时,会造成连续的polls不断产生,性能上反而更糟糕架构很容易出错的问题,而在整個架构的复杂度上也比传统的实现简单得多。优点:服务器与客户端之间交换的数据包档头很小,节约带宽。全双工通信,服务器可以主动传送数据给客户端。缺点:旧版浏览器不支持。


framework的运行机制: 编译器会将源代码编译成Microsoft中间语言(MSIL)有时也称为中间语言(IL)。当程序运行时,实时(JIT)编译器将MSIL转换为特定机器的本机代码,实时编译器是公共语言运行库的一部分。

Remoting(.net独有,不支持跨平台);gRPC(高性能,开源,通用的RPC框架,面向服务端和移动端,基于http/2设计)

微服务------服务实例集群

Consul:服务注册与发现,健康检查

微服务------网关:Gateway:提供统一服务入口,对前台透明.聚合后台服务,节省流量,提高性能。提供安全,过滤,流量控制等管理功能,就是一个弹性和瞬态处理库,允许我们以非常顺畅和线程安全的方式来执行诸如 重试,断路,超时,故障恢复等策略。

ExceptionLess:开源的日志收集和分析框架,能为应用程序提供实时错误,特性和日志报告。

微服务------统一配置中心:

Apollo:配置管理平台,能够集中化管理应用不同环境,不同集群的配置,配置修改后能实时推送到应用端,并且具备规范的权限、流程治理等特性。

微服务------分布式事务:

Docker:是一个开源的应用程序引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或者windows机器上,也可以实现虚拟化

Kubernetes编排容器,是管理应用的全生命周期的工具,从创建应用/部署,应用提供服务,扩容缩容,更新,都非常方便,而且可以做到故障自愈。

Jenkins是一个开源的,提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。

  1. 单例:可以保证系统中一个类只有一个实例,并且自行实例化向整个系统提供(例如一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务)

最简单的就是写考虑线程安全的单例模式,网站的计数器,日志, Web应用的配置对象的读取,数据库连接池,多线程的线程池

简单工厂:所有类的new都放到一个工厂类中进行

工厂模式:定义公共接口,每新增一个产品类,就需要添加一个实现该接口的工厂类

抽象工厂:跟工厂模式类似,定义公共接口,只是一个类中有多个产品。

// 定义一个静态变量来保存类的实例

// 定义一个标识确保线程同步

// 定义私有构造函数,使外界不能创建该类实例

// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点

// 双重锁定只需要一句判断就可以了

// 如果类的实例不存在则创建,否则直接返回

6、httpHandler处理请求后,请求结束,给出Response,客户端处理响应,整个过程结束

但是“ MVC 和 WebApi的接口安全。给每个http请求添加一个签名,服务端来验证签名的合法性,如果签名合法则执行响应的操作,如果签名非法则直接拒绝请求。

签名算法一般都使用Hash散列算法。签名参数 可以用Http请求的queryString然后加上时间戳还有随机数来作为签名的参数

Token验证非常简单,只需在相应的Controller或Action加上[Authorize]标记。在运行库,原先运行于请求管道与IIS核心管道组合在一起,这种模式能够提供更好的性能,能够实现配置和治理的模块化,而且增加了使用托管代码模块扩展IIS时的灵活性。假如老的Web应用程序运行于注册过的文件类型(例如aspx,asmx等等)才会轮到调用它,按照你的请求生成响应的内容,是HTTP请求的处理中心,真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信息附加在HTTP请求信息流中再次返回到HttpModule中

HostOrigin(请求的来源域名和端口号 (跨域请求时,浏览器会自动带上这个头信息),

11. js中的系统对象,数据类型和函数名称

1.sql语句慢,你怎么调试出来?怎么解决?

索引,首先考虑在 where及order by涉及的列上建索引

使用“临时表”暂存中间结果,将临时结果暂存在临时表,这可以避免程序中多次扫描主表,也大大减少了程序执行中“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能

不要把SQL语句写得太复杂,一般,将一个Select语句的结果作为子集,然后从该子集中再进行查询,这种一层嵌套语句还是比较常见的,但是根据经验,超过3层嵌套,查询优化器就很容易给出错误的执行计划

使用like进行模糊查询时,除非必要,否则不要在关键词前加%

2.数据库移植,就是sql,换成mysql,底层怎么做

使用dapper,调用的接口不改变,将数据映射成 xml,就可以了。

共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。

排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。

更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。

4.聚集索引和非聚集索引:

聚集索引确定表中数据的物理顺序,类似于电话簿,分配一块连续的空间,由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引

非聚集索引 随机分配一块空间,数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。

5.事务的特性,隔离级别 ?大多数数据库默认的事务隔离级别是Read committed

1. 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚

2. 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

3. 隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

4. 持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的

1. Read uncommitted读未提交,就是一个事务可以读取另一个未提交事务的数据。

2. Read committed 读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据

3. Repeatable read 重复读,就是在开始读取数据(事务开启)时,不再允许修改操作

4. Serializable 序列化Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

6. MongoDB:定义:开源,高性能,无模式的文档数据库,应用场景:解决 高并发,海量数据的访问和存储,对数据库的高扩展性和高可用性,具体场景: 社交,游戏,物流,物联网,直播等等。缺点:对事务性的支持不大友好,没有复杂的join。

8. 数据库三大范式:1 列不可再分 2 必须有主键 3表的非主属性不能依赖其他表的非主属性外键约束

9.索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。

mysql 使用Explain 模拟优化器执行SQL语句,分析查询语句或是结构的性能瓶颈, id越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行 查询索引信息。可以设置慢查询日志,来查看具体慢的sql.

主键索引,唯一索引,普通索引,全文索引 4种索引

10. 设计投票系统需要的主要几张表

11. 多表连接查询中有几种连接方式

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行

cross join(交叉连接) 没有where条件的交叉连接将产生连接表所涉及的笛卡尔积。即TableA的行数*TableB的行数的结果集

full join(全连接) 只要多表中某个表存在匹配的行,就返回行数据

union(结果集合) 将多张表的select语句获得的结果集合并在一起,数据不能重复。

union all(结果集合) 将多张表的select语句获得的结果集合并在一起,数据可以重复。

12. 数据库读写分离的链接怎么写

13. mysql和mssql有什么区别,关键字有什么不同?

MySQL是一个免费的、bai开放源du代码的SQL数据库,安装特别简单,

1.Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。没有环境不一致的情况,我这能用,你那用不了。类似于发布一个app.

2.Docker镜像是Docker容器的源代码,Docker镜像用于创建容器。使用build命令创建镜像。

3.Docker容器包括应用程序及其所有依赖项,作为操作系统的独立进程运行。

4.Docker容器:四种状态:运行、已暂停、重新启动、已退出。

FROM:指定基础镜像
LABEL:功能是为镜像指定标签
RUN:运行指定的命令
CMD:容器启动时要运行的命令

  8. 启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令

dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

当镜像用作另一个镜像构建的基础时,ONBUILD指令向镜像添加将在稍后执行的触发指令。如果要构建将用作构建其他镜像的基础的镜像(例如,可以使用特定于用户的配置自定义的应用程序构建环境或守护程序),这将非常有用

Docker统计数据:当我们使用容器ID调用docker stats时,我们获得容器的CPU,内存使用情况等。它类似于Linux中的top命令。
Docker事件:Docker事件是一个命令,用于查看Docker守护程序中正在进行的活动流。
一些常见的Docker事件是:attach,commit,die,detach,rename,destroy等。我们还可以使用各种选项来限制或过滤我们感兴趣的事件

基本上都是一些面试常问到的题目

1、说一些你比较常用linux指令

2、查看进程(例:如何查看所有xx进程)

  5.1、cd到服务器的logs目录(里面有xx.out文件)

  5.4、查看关键字附件的日志。如:cat filename | grep -C 5 '关键字'(关键字前后五行。B表示前,A表示后,C表示前后) ----使用不多

  5.5、还有vi查询啥的。用的也不多。

6、查看端口:(如查看某个端口是否被占用)

  其余的基本上不常用

8、vim(vi)编辑器  

  有命令模式、输入模式、末行模式三种模式。
  命令模式:查找内容(/abc、跳转到指定行(20gg)、跳转到尾行(G)、跳转到首行(gg)、删除行(dd)、插入行(o)、复制粘贴(yy,p)
  输入模式:编辑文件内容
  末行模式:保存退出(wq)、强制退出(q!)、显示文件行号(set number)
  在命令模式下,输入a或i即可切换到输入模式,输入冒号(:)即可切换到末行模式;在输入模式和末行模式下,按esc键切换到命令模式

微信用户量大,开发成本低 ,是一个开放性平台,形成闭环:一站式服务,效益转化率高

3 access_token有效时间只有2个小时,并且每天只能请求微信服务器获取access_token 2000次,该问题是如何处理的?

将acess_token存在数据库或文件或缓存每隔一定时间(小于7200s即可),再去获取.

4微信有哪九大高级接口

语音识别,客服接口,OAuth2.0网页授权,生成带参数二维码,获取用户地理位置,获取用户基本信息,获取关注者列表,用户分组接口,上传下载多媒体

5 微信支付流程(需要配置微信支付异步通知回调地址)

1.用户在商户APP中选择商品,提交订单,选择微信支付

2. 商户后台收到用户支付单,调用微信支付统一下单接口

3. 统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP

4. 商户APP调起微信支付

5. 商户后台接收支付通知(小程序没有支付异步通知回调地址)

1你使用过哪些方法,来提高微信小程序的应用速度

减少默认data的大小

无需下载,通过搜索和扫一扫就可以打开。

良好的用户体验:打开速度快。

安卓上可以添加到桌面。

为用户提供良好的安全保障。小程序的发布,微信拥有一套严格的审查流程,不能通过审查的小程序是无法发布到线上的。

限制较多。页面大小不能超过2M

样式单一。小程序的部分组件已经是成型的了,样式不可以修改

推广面窄,不能分享朋友圈,只能通过分享给朋友,附近小程序推广。其中附近小程序也受到微信的限制。

微信小程序采用JavaScript、WXML、WXSS三种技术进行开发,JavaScript的代码是运行在微信App中的,WXML只能使用微信提供的现有标签,

微信的架构,是数据驱动的架构模式,它的UI和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现。

小程序分为两个部分webview和appService。其中webview主要用来展现UI,appService用来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统层JSBridge实现通信,实现UI的渲染、事件的处理

wx.reLaunch():关闭所有页面,打开到应用内的某个页面

转载请标注来源-已哥们经有把我的面试总结,弄到自己网站里,换取打赏了,无语。。。。。。

  名师大将莫自牢,千军万马避蓝猫!!!

}

Netbois (网络基本输入/输出系统)最初由 IBM,Sytek 作为API开发,使用户软件能使用局域网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios 是接入网络服务的接口标准。

Netbios 原来是作为THE网络控制器为 IBM 局域网设计的,是通过特定硬件用来和网络操作系统 连接的软件层。Netbios经扩展,允许程序使用Netbios接口来操作IBM令牌环结构。Netbios 已被公认为工业标准,通常参照 Netbios-compatible LANs。

它提供给网络程序一套方法,相互通讯及传输数据。基本上,Netbios 允许程序和网络会话。它的目的是把程序和任何类型的硬件属性分开。它也使软件开发员可以免除以下负担:开发网络错误修复,低层信息寻址和路由。使用Netbios接口,可以为软件开发员做许多工作。

Netbios使程序和局域网操作能力之间的接口标准化。有它们可以将程序细化到为OSI模型的哪一层所写,使程序能移植到其他网络上。在Netbios局域网环境下,计算机通过名字被系统知道。网络中每台计算机都有通过不同方法编的永久性名称。这些名称将在下面做进一步讨论。

通过使用Netbios的数据报或广播方式,在Netbios局域网上的pc机建立会话彼此联络。会话允许更多的信息被传送,探测错误,和纠正。通信是在一对一的基础上的。数据报或广播方式允许一台计算机和多台其他的计算机同时通信,但信息大小受限。使用数据报或广播方式没有探测错误和纠正。然而,数据报通信可以不必建立一个会话。

在这种环境下所有的通信以一种称为“网络控制块“的格式提交给NetBIOS。内存中这些块的分配依赖于用户程序。这些“网络控制块“分配到域中,分别为输入/输出保留。

在当今的环境中,NetBIOS是使用很普遍的协议。以太网,令牌环,IBM PC网都支持NetBIOS。在它原始版本中,它仅作为程序和网络适配器的接口。从那以后,传输类功能加入NetBIOS,使它功能日益增多。

在NetBIOS里,面向连接(tcp)和无连接(udp)通信均支持。它支持广播和复播,支持三个分开的服务:命名,会话,数据报。

NetBIOS名称用来在网络上鉴别资源。程序用这些名称开始和结束会话。你能用多个程序配置一台单独的机器,每个程序都有独特的NetBIOS名称。每台支持应用的pc机也有用户定义或通过内部方法获得的NetBIOS站名。

NetBIOS能包含至多16个阿尔法数字字母。在整个资源路由网络里,字母的组合必须独特。在一台使用NetBIOS的pc机在网络上能完全工作起来之前,PC必须先登记NetBIOS名称。

当客户端活跃时,客户端广播它的名称。当它成功广播自己,并没有其他人和它重名,客户端就登记成功。登记过程如下:

1.在登陆上,客户端在所有地方广播它自己和它的NetBIOS信息6到10次,确保其他网络成员收到信息。
2.如果有客户端A已用此名,客户端A发布它自己的广播,包括它正在使用的名字。请求登陆的客户端停止所有登记的企图。
3.如无其他客户端反对登记,请求登陆的客户端完成登记过程。

在NetBIOS环境中有两类名称:独特的和集合的。独特的名称必须在网络中独特。集合的名称不必在网络中独特,所有同名过程属于同一集合。每个NetBIOS节点包含一张该节点当前使用名称的表。

NetBIOS命名允许16个字母用在NetBIOS名称中。而微软只允许15个字母用在NetBIOS名称中,第十六个为NetBIOS后缀。NetBIOS后缀用在Microsoft Networking 软件中,区别安装的功能,登记的设备和服务。

独特的(u):该名仅有一个IP地址分给它。在网络设备中,一个名称的多次出现看来会被登记,但后缀是唯一的,使整个名称唯一。

集合的(g):普通集合,一个名称可有多个IP地址。

多址的(M):名称是唯一的,但由于在同一计算机上有多个网络接口,这种配置应该被允许登记。地址的最大数目是25。

NetBIOS 会话服务提供给用户程序一种面向连接,可靠的,完全双重的信息服务。 NetBIOS要求一个是客户端程序,一个是服务器端程序。NetBIOS会话的建立需要双方预定的合作。一个程序必须先发出listen命令,其他程序才可以发出call令。listen命令参考在它的NetBIOS名称表中的名称(或windows服务器中的),也参考用于作为会话另一端的远端程序的名称。如果聆听者不在聆听,call命令将不会成功。如果call成功,各程序将接到会话id,以作为会话建立的确认。

send和receive命令操作传输数据。在会话最后,各程序将执行挂起命令。没有为会话服务的实际流控制,因为假定局域网足够快,能够传输需要的数据。

数据报可以发送到特定的地点,或组中所有成员,或广播到整个局域网。与其它数据服务相比,NetBIOS 数据报是无连接,非可靠的。Send_Datagram 命令需要调用者设定目的名。如果目的名是组名,组中每个成员都收到数据。Receive_Datagram 命令的调用者必须确定它接收数据的本地名。除了实际数据外,Receive_Datagram也返回发送者的名称。如果NetBIOS收到数据,但却没有Receive_Datagram 命令在等待,数据将被丢弃。

Send_Broadcast_Datagram 命令发送信息给本地网上每个NetBIOS系统。当NetBIOS节点收到广播数据,发布Receive_Broadcast_Datagram 命令的每个进程都收到数据。如果当广播数据被收到时,没有这些命令在运行,数据将被丢弃。

NetBIOS使应用程序能和另一个设备建立会话,使网络转发器和处理协议处理收到、发送到另一台机器的请求。NetBIOS实际上不操作数据。NetBIOS定义规定了用来到达这些服务的协议的网络接口,而非协议本身。历史上,NetBIOS曾与叫做NetBEUI的协议(网络扩展用户接口)捆绑。接口和协议的结合有时引起混淆,但它们是不同的。

网络协议为定位、连接到网络上特定的服务提供至少一种方法。这通常由将节点和服务名转化为网络地址(名称解析)完成。在连接用TCP/IP建立前,NetBIOS服务名必须解析成IP地址。大多数NetBIOS的TCP/IP 实现,用广播或LMHOSTS文件完成名称地址的解析。在Microsoft环境中,你最可能使用叫做WINS的NetBIOS 名称服务器。

协议。NetBEUI是原始的PC网络协议和IBM为LanManger(局域网操作器)服务器设计的接口。本协议稍后被微软采用作为它们的网络产品的标准。它规定了高层软件通过NetBIOS帧协议发送、接收信息的方法。本协议运行在标准802.2数据链协议层上。

计算机使用相同的计算机名,不同的范围ID。范围ID是NetBIOS名称的一部分,使名称唯一。
许多人知道,NetBIOS 是计算机局域网领域流行的一种传输方式,但你是否还知道,对于互联网用户来讲,NetBIOS 则是安全领域的一大隐患。
NetBIOS 是指网络输入输出系统,在计算机网络发展史中,NetBIOS 算得上是历史悠久。早在 1985 年,IBM 公司就开始在网络领域使用 NetBIOS,微软推出第一套基于 Windows 的网络操作系统--Windows For Workgroups(面向工作组的视窗操作系统)时,就采用了一种适用于 Windows 的 NetBIOS 版本,即 NetBEUI。微软当年之所以选择 NetBEUI 作为网络传输的基本协议,是因为它占用系统资源少、传输效率高,尤为适用于由 20 到 200 台计算机组成的小型局域网。此外,NetBEUI 还有一个最大的优点:可以方便地实现网络中各单机资源的共享。
后来,网络的发展速度之快,已大大超出人们的想象,进入 20 世纪未,全球的计算机就已可通过国际互联网络方便连接,随着互联网络的迅猛发展,TCP/IP 协议成为广泛使用的传输协议。
今天,TCP/IP 协议已是互联网领域的通用协议,几乎所有接入互联网的电脑都使用 TCP/IP。但同时,NetBEUI 协议也还在局域网领域广泛使用,因此,在你安装 TCP/IP 协议时,NetBIOS 也被 Windows 作为默认设置载入了你的电脑,而电脑随即也具有了 NetBIOS 本身的开放性。换句话讲,在不知不觉间,你的上网电脑已被打开了一个危险的“后门”。
NetBIOS 的开放,意味着你的硬盘可能会在网络中成为共享。对于网上四处游走的 来讲,他们可以通过 NetBIOS 获知你电脑中的一切!

二、找寻电脑中开放的“后门”
在想办法关闭电脑的这个“后门”前,我们有必要先认识这个问题:网络中的其它用户是怎样找到你系统漏洞的?
你可能认为:在茫茫网海,作为个人上网用户,我的一台电脑是多么的渺小,HACKER 们怎会对我感兴趣呢?其实,这种想法是很危险的,网上一些不怀好意的用户(很多还称不上是 ),说不定哪天就会盯上你。
现在,有许多被称作“扫描机(scanners)”的黑客小程序,这些扫描程序不停地穿梭于网络之中,专门寻找上网用户的系统漏洞,其中就包括 NetBIOS 及 Windows “文件及打印共享”功能所打开的系统后门。一旦扫描程序在网上发现了系统存在着漏洞的计算机,那些恶意攻击者就会设法通过找到的“后门”进入你的计算机,并获取你的信息。而令人深感不安的是,所有的这些非法入侵行为,你可能竟然毫无知觉。

正如前文所述,系统存在后门的原因是与 TCP/IP 协议捆绑在一起的 NetBIOS,事实上,对于互联网上的单机用户来讲,NetBIOS 是没有什么用处的,因此,你完全可以将它从 TCP/IP 中去掉。下面,就现在常见的几种操作系统介绍从TCP/IP 中解除 NetBIOS 的方法。

如果你使用的是最早版本的 Windows 95,那关闭 NetBIOS 就是一件非常容易的事:找到系统里名为 Vnbt.386 的文件,随便将它改个名,如改为 Vnbt.out,这就算大功告成了。
如果你使用的是 Windows 95改进版、Windows 98、Windows 98 SE 或是 Windows Me,那就要稍微麻烦一点。首先,打开控制面板,进入“网络”对话窗,在配置表中,查看列表中是否已有 NetBEUI 组件,如果有,则直接跳过下一段。
如果在列表中没有 NetBEUI 组件,则先点击“添加”按钮,在“要安装的网络组件类型”列表中,选择“协议”一项,再次点击“添加”,在“网络协议”对话窗中,选择 Microsoft 的 NetBEUI,然后,插入 Windows 安装盘,点击“确定”即可。
回到“网络”对话窗,在网络组件中选择“拨号适配器”,点击“属性”,在“属性”对话窗中选择“绑定”按钮,将除TCP/IP之外其它协议的复选框里的小勾清除掉。

最后,再次回到“网络”对话窗,选择 TCP/IP 协议,点击“属性”,这时有可能会弹出一个警告窗口,不用理它,直接点“OK”就行了,进入 TCP/IP 的“属性”窗口后,选择“绑定”,将所有网络协议复选框内的小勾去掉,点击“确定”,这时,Windows 会提示你至少应选择一种协议,仍然不用理它,点击“No”,关闭窗口。重新启动你的计算机,这样,你计算机中的 NetBIOS

这样一来,NetBIOS 已从你计算机的 TCP/IP 协议中去除,当然,你最好检查一下操作是否成功:回到“网络”对话窗,选择 TCP/IP 协议,点击“属性”,在“属性”窗口中点击 NetBIOS 栏,这时,你会看到“我希望在 TCP/IP 协议中开启 NetBIOS(I want to enable NetBIOS over TCP/IP)”一项,该项前面的复选框应该没有打勾。
现在,你就可以放心地在网络中漫游,而不必再担心有人会通过 NetBIOS 入侵你的电脑。
剖析NETBIOS的具体工作机理
本来想为了增加可读性,把这个系列写成问答的形式,不过一时之间脑袋里也编不出这么多的问题,还是按部就班先感性的对微软的浏览服务作一大致介绍,然后再深入剖析NETBIOS的具体工作机理,大家要是有什么问题,可以提出来我们一起讨论.

在“Windows NT系统管理技术内幕”一书中,讲到了一个非常具有代表性的问题,我把它摘抄了下来:

问:什么情况下会导致在网络邻居中计算机能看见却无法访问或可以访问却看不见?

A.你的网络存在物理问题,比如网线
D.你的网络没有问题,用户描述的是正常的微软浏览现象

书上的解释:微软的网络浏览可能在使用中出现"中断",而实际上它们并没有中断, 这种误解是由于用户对

微软网络浏览的处理过程不熟悉造成的。

就象有人经常在抱怨的“为什么别人的网上邻居可用,我的却不行?”“为什么有时候可以浏览,有时候

却无法浏览网络?”解铃还须系铃人,让我们一起去看看微软的网络浏览到底是如何实现的。鉴于大家可能对NT的“域”概念还不甚了解,出现浏览故障的也多为98的机子,我将以98的“工作组模式”为大家讲解。

在微软网络中,用户可以在浏览列表里看到整个网络(何指?子网还是广播域?大家可以考虑考虑)上所

有的计算机。当你通过网上邻居窗口打开整个网络时,你将看到一个工作组列表,再打开某个工作组,你将看

到里面的计算机列表(也可在 DOS方式下用net view /domain:workgroupname命令得到),这就是我们所说的 Browsing List。工作组从本质上说就是共享一个浏览列表的一组计算机,所有的工作组之间都是对等的,没有规定不可以让所有的计算机同处于一个工作组中。

曾在木棉上看到过一场争论,有人说:网上邻居里的计算机列表是广播查询得来的。可有人举反例说:我

的同学都关机了,可我还是能在网上邻居里看到它,应该是从HUB或交换机之类较为固定的设备的缓存中取得的

。 其实他们都只说对了一个方面,把他们二人的说法结合起来就是正确答案了--- 浏览列表是通过广播查询浏览主控服务器,由浏览主控服务器提供的。

3.浏览主控服务器又是什么

浏览主控服务器是工作组中的一台最为重要的计算机,它负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,每个工作组都为会每个传输协议选择一个浏览主控服务器,而我们经常遇到的无法浏览网络的错误大多是因为你所处的工作组没有浏览主控服务器而造成的。你可以在一个工作组中用NBTSTAT -a computername 命令找出使用NBT协议的浏览主控服务器,它的标识是含有\\_MSBROWSE_名字段。

4.浏览主控服务器是如何指定的

缺省情况下,win98工作组中的浏览主控服务器是该工作组中第一台启用文件及打印机共享功能的计算机,也允许手工将一台win计算机配置为浏览主控服务器(方法会在后面讲述网络配置时具体介绍,但由于浏览主控服务器需要维护动态浏览列表,性能会受影响),如果一个工作组中有多台计算机配置了这个选项,或是当前的浏览主控服务器关闭了系统,又没有其他计算机启用主控设置时,就要进行主控浏览器的选举。

5.如何通过浏览器选举产生浏览主控服务器

关于浏览器的选举报文,不太好抓包,我就只好按书上的东西来讲述了.其实过程很简单,首先由一台计算机发送一个选举临界报文,该报文包含了来自发送计算机的信息(操作系统,版本及NET名等),选举报文向网络中广播,工作组中的每一台计算机都会用自身信息与选举报文进行优先级比较,主要是操作系统起主要作用,记得好像是NTServer>NTWorkstation>Win98>WFWG,反正到最后是那个自身条件最好的成为新的浏览主控服务器.

6.整个网络浏览的过程是怎样的

当一台win98进入网络时,如果它带有服务器服务(启用了文件及打印机共享)会向网络广播宣告自己的存在,而浏览主控服务器会取得这个宣告并将它放入自己维护的浏览列表中;而没有在相应协议上绑定文件及打印机共享的计算机则不会宣告,因而也就不会出现在网络邻居里了。 当客户计算机想获得需要的网络资源列表时,首先会广播发出浏览请求,浏览主控服务器收到请求后,如果请求的是本组的浏览列表,则直接将客户所需的资源列表发回;如果请求的是其它工作组的浏览列表,浏览主控服务器会根据本身Browsing List中的记录找到相应工作组的主控浏览器返回给用户,用户可从那里得到它
想要的浏览列表。至于如何去和另一台计算机共享交换资源,就不是我们这里要讨论的问题了。

明白了网络浏览的原理,下面我给大家讲一个有用的应用,现在很多同学出于安全的考虑都不太欢迎陌生人通过网上邻居访问自己的机子,可有时下部电影又需要给认识的同学共享出来,因而还不能删除文件及打印机共享服务。怎么办?有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;有些人给共享加上密码,可听说这也是有办法破解的,而且很容易激起“黑客同志”的好奇心。有没有办法将自己的机器在网络邻居里隐藏起来呢?而对于认识的同学可以让他用\\IP 来访问。
想对了,关键就是要阻止自己的机器向网络中去宣告自己,而且我知道我们其中的一些人已经将此变成了现实,至于方法嘛,就不要来问我了。

注:因为有关win98浏览服务的资料很少,涉及的书籍也多为以NT的“域”模型进行介绍,因而我只能根据自己的理解结合netxray的实践来测试,细节部分难免有错,欢迎大家指正。
7.在我的网上邻居里为什么有些机子访问不了

如果微软的网上邻居真能做到所见即所得,相信抱怨它的人不会象现在这么多,可通过前面对浏览服务的

介绍,大家已经知道这是不可能的,因为浏览列表的获得不是通过访问其中每一台机子得到的,很多时候网络中的计算机并不能正确更新浏览列表。当一台计算机正常关机时,它会向网络发出广播宣告,使浏览主控服务器及时将它从浏览列表中删除;而非正常关机后,浏览列表里仍会把该条目保持很长一段时间(NT下是45分钟),这就是我们仍能在网络邻居里看到它的原因.而98的稳定性是众所周知的

当2000使用网络共享的时候,就面临着选择139或者445端口了。下面的情况确定会话使用的端口:

1、如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,如果从445端口得到回应,那么客户端将发送RST到139端口,终止这个端口的连接,接着就从445端口进行SMB的会话了;如果没有从445端口而是从139得到回应,那么就从139端口进行会话;如果没有得到任何回应,那么SMB会话失败。

2、如果客户端禁用了NBT,他就将只从445端口进行连接。当然如果服务器(开共享端)没有445端口进行SMB会话的话,那么就会访问失败了,所以禁用445端口后,对访问NT机器的共享会失败。

3、如果服务器端启用NBT,那么就同时监听UDP 137、138端口和TCP139,445。如果禁用NBT,那么就只监听445端口了。

所以对于2000来说,共享问题就不仅仅是139端口,445端口同样能够完成。

NULL会话(空会话)使用端口也同样遵循上面的规则。NULL会话是同服务器建立的无信任支持的会话。一

个会话包含用户的认证信息,而NULL会话是没有用户的认证信息,也就好比是一个匿名的一样。

没有认证就不可能为系统建立安全通道,而建立安全通道也是双重的,第一,就是建立身份标志,第二就

是建立一个临时会话密匙,双方才能用这个会话进行加密数据交换(比如RPC和COM的认证等级是PKT_PRIVACY)。不管是经过NTLM还是经过Kerberos认证的票据,终究是为会话创建一个包含用户信息的令牌。(这段来自Joe Finamore)

根据WIN2000的访问控制模型,对于空会话同样需要提供一个令牌。但是空会话由于是没有经过认证的会话

,所以令牌中不包含用户信息,因此,建立会话双方没有密匙的交换,这也不能让系统间发送加密信息。这并

不表示空会话的令牌中不包含SID,对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话建立的SID

,用户名是ANONYMOUS LOGON。这个用户名是可以在用户列表中看到的。但是是不能在SAM数据库中找到,属于系统内置的帐号。

NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该不会来设置这样一个东西。好不容易才在微软上找到这个:

当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通道的密码验证,使用空

会话能够非常容易地找到PDC,还有就是关于一些系统服务的问题。

其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开TCP 139和TCP 445端口。我

们可以从一次关闭这两个端口的情况中看得出来。服务器关闭445和139端口,然后我们来进行空会话的连接。

首先,客户端打算连接的是445端口,然后再试图连接139端口。当然最后还是失败了。

仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。如果没有IPC共享,即使共享一个文件,有权

限为Anonymous Logon,也不能建立会话,即使权限设置为完全控制,出现的连接错误依然是权限不够。这和其

他帐号是不一样的。如果要允许一个文件夹共享能够类似IPC$(命名管道而非共享)能够使用空会话,那么需

中的:NullSessionShares,添加新的共享名,这样才能建立一个共享的空会话。这时,将不依赖IPC的存

在了。(即使这样的空会话对于后面的突破也是一点没可取之处的,因为没有了IPC$命名管道,RPC不可取了,

这下知道IPC这个命名管道的具体实现了。呵呵)

虽然空会话建立的要求很严格,但是那都是默认建立的。既然是默认的,对于使用WIN2K系统的服务器来说

,就还是有利用的价值。最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描

1. 有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;

这种隐藏只是微软Windows标准客户端net view的限制,不是服务端的限制,网络传输过程中是一视同仁的

,所以直接修改客户端解除这种限制或者使用第三方客户端软件均可看到所谓的隐藏共享,比如smbclient就是

2. 有些人给共享加上密码,可听说这也是有办法破解的;

这个破解要看是什么层面上的

}

摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。

二、HTTP协议与状态保持

五、理解,相当于总店招牌,比如宝洁公司,也可以指定一个域下的具体某台机器比如或者,可以用飘柔来做比。

路径就是跟在域名后面的URL路径,比如/或者/foo等等,可以用某飘柔专柜做比。

路径与域合在一起就构成了cookie的作用范围。

如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。

存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。对于IE,在一个打开的窗口上按Ctrl-N(或者从文件菜单)打开的窗口可以与原窗口共享,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie;对于Mozilla /intl/zh-CN/

}

我要回帖

更多关于 wifi需要网页认证怎么办 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信