网络工程师面试题目

仗恃
  • 回答数

    3

  • 浏览数

    3419

首页> 工程师报名> 网络工程师面试题目

3个回答默认排序
  • 默认排序
  • 按时间排序

别墨迹了

已采纳

网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。下面是我为你整理的网络工程师面试题,希望对你有所帮助!

1、用户名与口令被破解

攻击原理:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。

防范技巧:涉及用户名与口令的程序最好封装在服务器端,尽量少在ASP文件里出现,涉及与数据库连接的用户名与口令应给予最小的权限。出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及与数据库连接,在理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户修改、插入、删除记录的权限。

2、验证被绕过

攻击原理:现在需要经过验证的ASP程序大多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入。

防范技巧:需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。

3、inc文件泄露问题

攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。

防范技巧:程序员应该在网页发布前对它进行彻底的调试;安全专家则需要加固ASP文件以便外部的用户不能看到它们。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件的源代码。inc文件的文件名不要使用系统默认的或者有特殊含义容易被用户猜测到的名称,尽量使用无规则的英文字母。

4、自动备份被下载

攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个.bak文件,如你创建或者修改了,编辑器会自动生成一个叫 文件,如果你没有删除这个bak文件,攻击者可以直接下载文件,这样的源程序就会被下载。

防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。

5、特殊字符

攻击原理:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及数据查询,他们会利用特殊查询语句,得到更多的数据库数据,甚至表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过。

防范技巧:在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、JavaScript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但要在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。

6、数据库下载漏洞

攻击原理:在用Access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称,那么他也能够下载这个Access数据库文件,这是非常危险的。

防范技巧:

(1)为你的数据库文件名称起个复杂的非常规的名字,并把它放在几层目录下。所谓 “非常规”,打个比方说,比如有个数据库要保存的是有关书籍的信息,可不要给它起个“”的名字,而要起个怪怪的名称,比如,并把它放在如.kdslfi44studi的几层目录下,这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了。

(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:

DBPath = (“”)

“driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath

假如万一给人拿到了源程序,你的Access数据库的名字就一览无余了。因此建议你在ODBC里设置数据源,再在程序中这样写:

“shujiyuan”

(3)使用Access来为数据库文件编码及加密。首先在“工具→安全→加密解密数据库”中选取数据库(如:),然后按确定,接着会出现“数据库加密后另存为”的窗口,可存为:“”。

要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。

接下来我们为数据库加密,首先打开经过编码了的 ,在打开时,选择“独占”方式。然后选取功能表的“工具→安全→设置数据库密码”,接着输入密码即可。这样即使他人得到了 文件,没有密码他也是无法看到 中的内容。

7、防范远程注入攻击

这类攻击在以前应该是比较常见的攻击方式,比如POST攻击,攻击者可以随便的改变要提交的数据值已达到攻击目的.又如:COOKIES 的伪造,这一点更值得引起程序编写者或站长的注意,不要使用COOKIES来做为用户验证的方式,否则你和把钥匙留给贼是同一个道理.

比如:

If trim(Request. cookies (“uname”))=”fqy” and (“upwd”) =”fqy#” then

……..more………

End if

我想各位站长或者是喜好写程序的朋友千万别出这类错误,真的是不可饶恕.伪造COOKIES 都多少年了,你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不可能.例:

if not ( or ) then

login=”true”

Session(“username”&sessionID) = Username

Session(“password”& sessionID) = Password

‘(“username”)= Username

‘(“Password”)= Password

下面我们来谈谈如何防范远程注入攻击,一般的攻击都是将单表提交文件拖到本地,将Form ACTION=”” 指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上,那么恭喜你,你将已经被脚本攻击了.

怎么才能制止这样的远程攻击?好办,请看代码如下: 程序体(9)

‘个人感觉上面的代码过滤不是很好,有一些外部提交竟然还能堂堂正正的进来,于是再写一个.

‘这个是过滤效果很好,建议使用.

if instr((“http_referer”),”http:”&(“host”) )<1 then“处理 URL 时服务器上出错。

如果您是在用任何手段攻击服务器,那你应该庆幸,你的所有操作已经被服务器记录,我们会第一时间通知公安局与国家安全部门来调查你的IP. ”

end if

程序体(9)

本以为这样就万事大吉了,在表格页上加一些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越来什么.你别忘了,攻击者可以突破sql注入攻击时输入框长度的限制.写一个SOCKET程序改变HTTP_REFERER?我不会。网上发表了这样一篇文章:

—————————–

Windows Registry Editor Version

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt扩展(&E)]

@=”C:Documents and SettingsAdministrator桌面”

“contexts”=dword:00000004

———–end———————-

———–——————

———-end———————–

用法:先把导入注册表(注意文件路径)

然后把拷到注册表中指定的地方.

打开网页,光标放在要改变长度的输入框上点右键,看多了一个叫扩展的选项了吧

单击搞定! 后记:同样的也就可以对付那些限制输入内容的脚本了.

怎么办?我们的限制被饶过了,所有的努力都白费了?不,举起你de键盘,说不。让我们继续回到脚本字符的过滤吧,他们所进行的注入无非就是进行脚本攻击。我们把所有的精力全都用到ACTION以后的页面吧,在页中,我们将非法的字符全部过滤掉,结果如何?我们只在前面虚晃一枪,叫他们去改注册表吧,当他们改完才会发现,他们所做的都是那么的徒劳。

8、ASP木马

已经讲到这里了,再提醒各位论坛站长一句,小心你们的文件上传:为什么论坛程序被攻破后主机也随之被攻击者占据。原因就在……对!ASP木马!一个绝对可恶的东西。病毒么?非也.把个文件随便放到你论坛的程序中,您老找去吧。不吐血才怪哦。如何才能防止ASP木马被上传到服务器呢?方法很简单,如果你的论坛支持文件上传,请设定好你要上传的文件格式,我不赞成使用可更改的文件格式,直接从程序上锁定,只有图象文件格式,和压缩文件就完全可以,多给自己留点方便也就多给攻击者留点方便。怎么判断格式,我这里收集了一个,也改出了一个,大家可以看一下:

程序体(10)

‘判断文件类型是否合格

Private Function CheckFileExt (fileEXT)

dim Forumupload

Forumupload=”gif,jpg,bmp,jpeg”

Forumupload=split(Forumupload,”,”)

for i=0 to ubound(Forumupload)

if lcase(fileEXT)=lcase(trim(Forumupload(i))) then

CheckFileExt=true

exit Function

else

CheckFileExt=false

end if

next

End Function

‘验证文件内容的合法性

set MyFile =(“”)

set MyText =(sFile, 1) ‘ 读取文本文件

sTextAll = lcase():

‘判断用户文件中的危险操作

sStr =”8 .getfolder .createfolder .deletefolder .createdirectory

.deletedirectory”

sStr = sStr & “ .saveas”

sNoString = split(sStr,” ”)

for i = 1 to sNoString(0)

if instr(sTextAll, sNoString(i)) <> 0 then

sFile =& sFileSave:sFile

”& sFileSave &”文件中含有与操作目录等有关的命令”&_

”& mid(sNoString(i),2) &”,为了安全原因,不能上传。”&_”

end if

next

程序体(10)

67评论

伤心旧事

面试的目的是确定面试者如何处理他们所选择的研究领域的问题,以及他们如何批判性地思考问题。下面我给大家带来2021面试网络工程师的题目参考,希望能帮助到大家!

Java多线程面试题目

1、什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。

2、线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。

3、如何在Java中实现线程?

两种方式:类的实例就是一个线程但是它需要调用接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承类或者直接调用Runnable接口来重写run()方法实现线程。

4、Java 关键字volatile 与 synchronized 作用与区别?

Volatile:

它所修饰的变量不保留拷贝,直接访问主内存中的。

在Java内存模型中,有main memory,每个线程也有自己的memory(例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,或者mainmemory中的值不一致的情况。 一个变量声明为volatile,就意味着这个变量是随时会被其他线程修改的,因此不能将它cache在线程memory中。

synchronized:

当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。

二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

四、当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。

五、以上规则对其它对象锁同样适用。

5、有哪些不同的线程生命周期?

当我们在Java程序中新建一个线程时,它的状态是New。当我们调用线程的start()方法时,状态被改变为Runnable。线程调度器会为Runnable线程池中的线程分配CPU时间并且讲它们的状态改变为Running。其他的线程状态还有Waiting,Blocked和Dead。

6、你对线程优先级的理解是什么?

每一个线程都是有优先级的,一般来说,高优先级的线程在运行时会具有优先权,但这依赖于线程调度的实现,这个实现是和操作系统相关的(OSdependent)。

我们可以定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程优先级是一个int变量(从1-10),1代表最低优先级,10代表最高优先级。

7、什么是死锁(Deadlock)?如何分析和避免死锁?

死锁是指两个以上的线程永远阻塞的情况,这种情况产生至少需要两个以上的线程和两个以上的资源。

分析死锁,我们需要查看Java应用程序的线程转储。我们需要找出那些状态为BLOCKED的线程和他们等待的资源。每个资源都有一个唯一的id,用这个id我们可以找出哪些线程已经拥有了它的对象锁。

避免嵌套锁,只在需要的地方使用锁和避免无限期等待是避免死锁的通常办法。

8、什么是线程安全?Vector是一个线程安全类吗?

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

一个线程安全的计数器类的同一个实例对象在被多个线程使用的情况下也不会出现计算失误。很显然你可以将集合类分成两组,线程安全和非线程安全的。Vector是用同步方法来实现线程安全的, 而和它相似的ArrayList不是线程安全的。

9、Java中如何停止一个线程?

Java提供了很丰富的API但没有为停止线程提供API。JDK 本来有一些像stop(),suspend()和resume()的控制方法但是由于潜在的死锁威胁因此在后续的JDK版本中他们被弃用了,之后JavaAPI的设计者就没有提供一个兼容且线程安全的方法来停止一个线程。

当run()或者 call()方法执行完的时候线程会自动结束,如果要手动结束一个线程,你可以用volatile布尔变量来退出run()方法的循环或者是取消任务来中断线程。

10、什么是ThreadLocal?

ThreadLocal用于创建线程的本地变量,我们知道一个对象的所有线程会共享它的全局变量,所以这些变量不是线程安全的,我们可以使用同步技术。但是当我们不想使用同步的时候,我们可以选择ThreadLocal变量。

每个线程都会拥有他们自己的Thread变量,它们可以使用get()set()方法去获取他们的默认值或者在线程内部改变他们的值。ThreadLocal实例通常是希望它们同线程状态关联起来是privatestatic属性。

Kubernetes面试题汇总

1、什么是Kubernetes?

Kubernetes是一个开源容器管理工具,负责容器部署,容器扩缩容以及负载平衡。作为Google的创意之作,它提供了出色的社区,并与所有云提供商合作。因此,我们可以说Kubernetes不是一个容器化平台,而是一个多容器管理解决方案。

2、Kubernetes与Docker有什么关系?

众所周知,Docker提供容器的生命周期管理,Docker镜像构建运行时容器。但是,由于这些单独的容器必须通信,因此使用Kubernetes。因此,我们说Docker构建容器,这些容器通过Kubernetes相互通信。因此,可以使用Kubernetes手动关联和编排在多个主机上运行的容器。

3、什么是Container Orchestration?

考虑一个应用程序有5-6个微服务的场景。现在,这些微服务被放在单独的容器中,但如果没有容器编排就无法进行通信。因此,由于编排意味着所有乐器在音乐中和谐共处,所以类似的容器编排意味着各个容器中的所有服务协同工作以满足单个服务器的需求。

4、Kubernetes如何简化容器化部署?

由于典型应用程序将具有跨多个主机运行的容器集群,因此所有这些容器都需要相互通信。因此,要做到这一点,你需要一些能够负载平衡,扩展和监控容器的东西。由于Kubernetes与云无关并且可以在任何公共私有提供商上运行,因此必须是您简化容器化部署的选择。

5、您对Kubernetes的集群了解多少?

Kubernetes背后的基础是我们可以实施所需的状态管理,我的意思是我们可以提供特定配置的集群服务,并且集群服务将在基础架构中运行并运行该配置。

因此,正如您所看到的,部署文件将具有提供给集群服务所需的所有配置。现在,部署文件将被提供给API,然后由集群服务决定如何在环境中安排这些pod,并确保正确运行的pod数量。

因此,位于服务前面的API,工作节点和节点运行的Kubelet进程,共同构成了Kubernetes集群。

6、Kubernetes Architecture的不同组件有哪些?

Kubernetes Architecture主要有两个组件 -主节点和工作节点。如下图所示,master和worker节点中包含许多内置组件。主节点具有kube-controller-manager,kube-apiserver,kube-scheduler等。而工作节点具有在每个节点上运行的kubelet和kube-proxy。

7、您能否介绍一下Kubernetes中主节点的工作情况?

Kubernetesmaster控制容器存在的节点和节点内部。现在,这些单独的容器包含在容器内部和每个容器内部,您可以根据配置和要求拥有不同数量的容器。

因此,如果必须部署pod,则可以使用用户界面或命令行界面部署它们。然后,在节点上调度这些pod,并根据资源需求,将pod分配给这些节点。kube-apiserver确保在Kubernetes节点和主组件之间建立通信。

8、kube-apiserver和kube-scheduler的作用是什么?

kube-apiserver遵循横向扩展架构,是主节点控制面板的前端。这将公开Kubernetes主节点组件的所有API,并负责在Kubernetes节点和Kubernetes主组件之间建立通信。

kube-scheduler负责工作节点上工作负载的分配和管理。因此,它根据资源需求选择最合适的节点来运行未调度的pod,并跟踪资源利用率。它确保不在已满的节点上调度工作负载。

9、你对Kubernetes的负载均衡器有什么了解?

负载均衡器是暴露服务的最常见和标准方式之一。根据工作环境使用两种类型的负载均衡器,即内部负载均衡器或外部负载均衡器。内部负载均衡器自动平衡负载并使用所需配置分配容器,而外部负载均衡器将流量从外部负载引导至后端容器。

10、Replica Set 和 Replication Controller之间有什么区别?

Replica Set 和 ReplicationController几乎完全相同。它们都确保在任何给定时间运行指定数量的pod副本。不同之处在于复制pod使用的选择器。ReplicaSet使用基于集合的选择器,而Replication Controller使用基于权限的选择器。

Equity-Based选择器:这种类型的选择器允许按标签键和值进行过滤。因此,在外行术语中,基于Equity的选择器将仅查找与标签具有完全相同短语的pod。

示例:假设您的标签键表示app = nginx,那么,使用此选择器,您只能查找标签应用程序等于nginx的那些pod。

Selector-Based选择器:此类型的选择器允许根据一组值过滤键。因此,换句话说,基于Selector的选择器将查找已在集合中提及其标签的pod。

示例:假设您的标签键在(nginx,NPS,Apache)中显示应用程序。然后,使用此选择器,如果您的应用程序等于任何nginx,NPS或Apache,则选择器将其视为真实结果。

渗透攻击的测试步骤

1.如果原始值为2,我们使用(1+1)或(3-1),程序作出相同回应,表明易受攻击

2.如果单引号被过滤掉,我们可以用ASCII命令,使它返回字符的数字化代码,如51-ASCII(1)

3.在URL编码中,&和=用于链接名称值对,建立查询字符串应当分别使用%26和%3d进行编码

4.如查询字符串不允许使用空格,使用+或%20编码

5.分号被用于分割cookie自读,使用%3d编码

2021面试网络工程师的题目相关文章:

&关于网络工程师的面试题有哪些

&网络管理员面试题及答案大全

&最新的运维工程师面试题目整理

&网络测试工程师面试题及答案

&计算机网络面试题及参考答案

&网络工程师面试自我介绍范文五篇

&面试网络技术工程师的有哪些提问

&最新的it运维工程师面试题整理

34评论

回不到

思科网络工程师面试题

思科网络工程师认证是由思科系统公司统一认证的,要想取得必须在思科系统公司授权的VUE考场参加考试,通过后思科系统公司会按照考试时你所填写的收件地址邮寄你的证书。下面是我整理的关于思科网络工程师面试题,希望大家认真阅读!

三层交换机和路由器都可工作在网络的第三层,根据ip地址进行数据包的转发(或交换),原理上没有太大的区别,这两个名词趋向于统一,我们可以认为三层交换机就是一个多端口的路由器。

但是传统的路由器有3个特点:基于CPU的单步时钟处理机制;能够处理复杂的路由算法和协议;主要用于广域网的低速数据链路

在第三层交换机中,与路由器有关的第三层路由硬件模块也插接在高速背板总线上,这种方式使得路由模块可以与需要路由的其他模块间高速的交换数据,从而突破了传统的外接路由器接口速率的限制(10Mbits---100Mbits)。

※对路由知识的掌握情况,对方提出了一个开放式的问题:简单说明一下你所了解的路由协议。

路由可分为静态&动态路由。静态路由由管理员手动维护;动态路由由路由协议自动维护。

路由选择算法的必要步骤:1、向其它路由器传递路由信息;2、接收其它路由器的路由信息;3、根据收到的.路由信息计算出到每个目的网络的最优路径,并由此 生成路由选择表;4、根据网络拓扑的变化及时的做出反应,调整路由生成新的路由选择表,同时把拓扑变化以路由信息的形式向其它路由器宣告。

两种主要算法:距离向量法(Distance Vector Routing)和链路状态算法(Link-State Routing)。由此可分为距离矢量(如:RIP、IGRP、EIGRP)&链路状态路由协议(如:OSPF、IS-IS)。

路由协议是路由器之间实现路由信息共享的一种机制,它允许路由器之间相互交换和维护各自的路由表。当一台路由器的路由表由于某种原因发生变化时,它需要及时地将这一变化通知与之相连接的其他路由器,以保证数据的正确传递。路由协议不承担网络上终端用户之间的数据传输任务。

※简单说下OSPF的操作过程

①路由器发送HELLO报文;②建立邻接关系;③形成链路状态④SPF算法算出最优路径⑤形成路由表

※OSPF路由协议的基本工作原理,DR、BDR的选举过程,区域的作用及LSA的传输情况(注:对方对OSPF的相关知识提问较细,应着重掌握)。

特点是:1、收敛速度快;2、支持无类别的路由表查询、VLSM和超网技术;3、支持等代价的多路负载均衡;4、路由更新传递效率高(区域、组播更新、DRBDR);5、根据链路的带宽(cost)进行最优选路。

通过发关HELLO报文发现邻居建立邻接关系,通过泛洪LSA形成相同链路状态数据库,运用SPF算法生成路由表。

DRBDR选举:1、DRBDR存在->不选举;达到2-way状态Priority不为0->选举资格;3、先选BDR后DR;4、利用“优先级”“RouterID”进行判断。

1、通过划分区域可以减少路由器LSA DB,降低CPU、内存、与LSA泛洪带来的开销。2、可以将TOP变化限定在单个区域,加快收敛。

LSA1、LSA2只在始发区域传输;LSA3、LSA4由ABR始发,在OSPF域内传输;LSA5由ASBR始发在OSPF的AS内传输;LSA7只在NSSA内传输。

※OSPF有什么优点?为什么OSPF比RIP收敛快?

优点:1、收敛速度快;2、支持无类别的路由表查询、VLSM和超网技术;3、支持等代价的多路负载均衡;4、路由更新传递效率高(区域、组播更新、DRBDR);5、根据链路的带宽进行最优选路

采用了区域、组播更新、增量更新、30分钟重发LSA

146评论

相关问答