介绍了网络安全岗位常见的面试题,仅供参考!
1.Linux服务器种用户关键信息存储在那个文件中?启动、停止、重启、开机自启mysql服务命令?如何查找/etc/test.txt文件中"password"关键字信息?如何精确查找80端口?
/etc/passwd
systemctl start mysqld 或 system mysqld start 启动
systemctl stop mysqld 或 system mysqld stop 停止
systemctl restart mysqld 或 system mysqld restart 重启
systemctl enable mysqld 或 system mysqld enable 开机自启
grep "password" /etc/password
netstat -nltp | grep 80
2.列举常见安全设备,并说明作用及常见的部署模式?(至少五个)
防火墙:
作用:隔离互联网、访问控制等
部署模式:网关、透明、旁路 …
3.Cookies和session区别?
Cookie和Session都是客户端与服务器之间保持状态的解决方案
a.存储的位置不同,cookie:存放在客户端,session:存放在服务端。Session存储的数据比较安全
b.存储的数据类型不同
两者都是key-value的结构,但针对value的类型是有差异的
cookie:value只能是字符串类型,session:value是Object类型
c.存储的数据大小限制不同
cookie:大小受浏览器的限制,很多是是4K的大小, session:理论上受当前内存的限制,
d.生命周期的控制
cookie的生命周期当浏览器关闭的时候,就消亡了
(1)cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束,
(2)session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁
4.一次完整的HTTP请求过程?
域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户。
5.TCP三次握手过程?
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
1.什么是SQL注入攻击?如何防范?
攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。
防范:
Web端
1)有效性检验。
2)限制字符串输入的长度。
服务端
1)不用拼接SQL字符串。
2)使用预编译的PrepareStatement。
3)有效性检验。(为什么服务端还要做有效性检验?第一准则,外部都是不可信的,防止攻击者绕过Web端请求)
4)过滤SQL需要的参数中的特殊字符。比如单引号、双引号。
2.应用有漏洞,但是无法修复和停用,你怎么办?
限制IP白名单访问
使用WAF、IDS、防火墙设备
3.DDos 攻击原理及防御?
客户端向服务端发送请求链接数据包,服务端向客户端发送确认数据包,客户端不向服务端发送确认数据包,服务器一直等待来自客户端的确认
没有彻底根治的办法,除非不使用TCP
DDos 预防:
1)限制同时打开SYN半链接的数目
2)缩短SYN半链接的Time out 时间
3)关闭不必要的服务
4.mysql的网站注入,5.0以上和5.0以下有什么区别?
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
5.0以下是多用户单操作,5.0以上是多用户多操做。
5.文件上传绕过方法有哪些?(至少五种)
上传.htaccess
后缀大小写绕过
点绕过
空格绕过
点空格绕过
%00截断等
1.如果一台服务器被入侵后,你会如何做应急响应?
1.准备相关的工具,查后门等工具
2.初步判断事件类型,事件等级。
3.抑制范围,隔离使爱害面不继续扩大
4.查找原因,封堵攻击源。
5.业务恢复正常水平.
6.总结,报告,并修复、监控
2.发现服务器被挖矿了怎么清理病毒?
使用top查看进程,kill掉异常进程
检查/tmp和/var/tmp目录,删除java、ppc、w.conf等异常文件
检查crontab任务列表,删除异常任务
排查YARN日志,确认异常的application,删除处理
1.企业内部安全建设可以从那些方面考虑?
实名制联网(准入)
重要网段隔离(区域隔离)
禁止接入任何USB设备
禁用WIFI网络
IP与MAC地址绑定
部署网络监控、IDS、IPS设备
定期培训,提高员工安全意识
2.阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
【说明】
某学校计划部署校园网络,其建筑物分布如图1-1所示。

根据需求分析结果,校园网规划要求如下:
1.信息中心部署在图书馆;
2.实验楼部署237个点,办公楼部署87个点,学生宿舍部署422个点,食堂部署17个点;
3.为满足以后应用的需求,要求核心交换机到汇聚交换机以千兆链路聚合,同时千兆到桌面;
4.学校信息中心部署服务器,根据需求,一方面要对服务器有完善的保护措施, 另- -方面要对内外网分别提供不同的服务;
5.部署流控网关对P2P流量进行限制,以保证正常上网需求。
【问题1】
根据网络需求,设计入员设计的网络拓扑结构如图1-2所示。
请根据网络需求描述和网络拓扑结构回答以下问题。
1.图1-2中设备①应为(1) ,设备②应为(2),设备③应为(3) ,设备④应为(4) 。
(1) ~ (4) 备选答案: (每设备限选1次)
A.路由器 B.核心交换机 C.流控服务器 D.防火墙
2.设备④应该接在(5) 上。

【问题2】
1.根据题目说明和网络拓扑图,在图1-2中,介质1应选用(6) ,介质2应选用(7) ,介质3应选用(8) 。
问题(6) ~ (8)备选答案:(注:每项只能选择一次)
A.单模光纤
B.多模光纤
C.6类双绞线
D.5类双绞线
2.根据网络需求分析和网络拓扑结构图,所有接入交换机都直接连接汇聚交换机,本校园网中至少需要(9) 台24口的接入交换机(不包括服务器使用的交换机)。
【问题3】
交换机的选型是网络设计的重要工作,而交换机的背板带宽、包转发率和交换容量是其重要技术指标。其中,交换机进行数据包转发的能力称为(10) , 交换机端口处理器和数据总线之间单位时间内所能传输的最大数据量称为(11) 。某交换机有24个固定的千兆端口,其端口总带宽为(12) Mbps。
【问题4】
根据需求分析,图书馆需要支持无线网络接入,其部分交换机需要提供POE功能,POE的标准供电电压值为(13) 。
问题(13) 备选答案:
A.5V
B. 12V
C.48V
D. 110V
【参考答案】
【问题1】
(1) A或路由器
(2) C或流控服务器
(3) B或核心交换机
(4) D或防火墙
(5)核心交换机或设备③
【问题2】
(6) A或单模光纤
(7) C或6类双绞线
(8) B多模光纤
(9) 35
【问题3】
(10)包转发率
(11) 背板带宽
(12) 48000
【问题4】
(13) C或48V
更多安全分享,请关注【安全info】微信公众号!
830709780qq群
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案
我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT
我在一个ruby文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}