PHP安全编码培训考题.docx
《PHP安全编码培训考题.docx》由会员分享,可在线阅读,更多相关《PHP安全编码培训考题.docx(8页珍藏版)》请在冰豆网上搜索。
PHP安全编码培训考题
Python/PHP安全编码培训考题
感谢您能抽出几分钟时间来参加本次答题,现在我们就马上开始吧!
个人信息(请如实填写)
第1项:
您的姓名为?
____________
第2项:
您所在的公司为?
○骏彩
○科技
○运营
○印务
第3项:
您所在的部门为?
____________
单项选择题(共25题,每题4分,共计100分)
第4项:
1、关于输入过滤原则描述错误的是?
○A、假设所有输入都是恶意的
○B、不要依赖客户端检验
○C、可以采用正则表达式检验
○D、不要依赖服务端检验
第5项:
2、输入过滤不可以防止以下哪种漏洞?
○A、XSS
○B、S
第L注入
○C、XML注入
○D、CSRFQ6项:
3、身份验证是确定用户身份的过程,大部分Web应用程序使用口令机制来验证用户身份,以下哪项设计不正确?
○A、提供帐户锁定功能
○B、限定IP范围
○C、双因素认证
○D、使用GET传递口令
第7项:
4、某购物网站开发项目经过需求分析进入系统设计阶段,为了保证用户帐户安全,项目开发人员决定用户登录时除了用户名口令认证方式外,还加入基于数字证书的身份认证功能,同时用户口令使用SHA-1算法加密后存放在后台数据库中,请问以上安全设计遵循的是哪项安全设计原则?
○A、最小特权原则
○B、职责分离原则
○C、纵深防御原则
○D、最少共享机制原则
第8项:
5、以下关于数字签名说法正确的是?
○A、数字签名是在所传输的数据后附加上一段和传输数据毫无关系的数字信息
○B、数字签名能够解决数据的加密传输,即安全传输问题
○C、数字签名一般采用对称加密机制
○D、数字签名能够解决篡改、伪造等安全性问题
第9项:
6、最小特权是软件安全设计的基本原则,某应用程序在设计时,设计人员给出了以下四种策略,其中有一个违反了最小特权的原则,作为评审专家,请指出是哪一个?
○A、软件在Linux下安装时,设定运行时使用nobody用户运行实例
○B、软件的日志备份模块由于需要备份所有数据库数据,在备份模块运行时,以数据库备份操作员账号连接数据库
○C、软件的日志模块由于要向数据库中的日志表中写入日志信息,是用了一个日志用户账号连接数据库,该账号仅对日志表拥有权限
○D、为了保证软件在Windows下能稳定的运行,设定运行权限为system,确保系统运行正常,不会因为权限不足产生运行错误
第10项:
7、敏感数据不包括哪些?
○A、数据库连接字符串
○B、口令
○C、密钥
○D、库存数据
第11项:
8、敏感数据应该如何处理?
○A、明文存储
○B、HTTPS传输
○C、HTTPGET传输
○D、存储在日志中
第12项:
9、编码(encoder)可以防御哪些攻击?
○A、XSS、S
第L注入
○B、信息泄露
○C、CSRF
○D、文件上传Q13项:
10、业务系统运行中异常错误处理合理的方法是?
○A、让系统自己处理异常
○B、调试方便,应该让更多的错误更详细的显示出来
○C、捕获错误,并抛出到前台显示
○D、捕获错误,只显示简单的提示信息,或不显示任何信息
第14项:
11、常用的混合加密(hybridEncryption)方案指的是:
○A、使用对称加密进行通讯数据加密,使用公钥加密进行会话加密协商
○B、使用公钥加密进行通讯数据加密,使用对称加密进行会话加密协商
○C、少量数据使用公钥加密,大量数据使用对称加密
○D、少量数据使用对称加密,大量数据使用公钥加密
第15项:
12、S
第L注入是黑客对Web数据库进行攻击的常用手段之一,以下不是有效防范方法的是项:
○A、不使用关系型数据库
○B、使用存储过程
○C、认真对表单输入进行校验,从查询变量中滤去尽可能多的可疑字符
○D、严格区分数据库的访问权限
第16项:
13、以下不是常用的预防栈溢出的防御方法的是?
○A、避免或正确使用可能产生栈溢出的函数
○B、进行堆栈检查
○C、过滤特殊字符
○D、Fuzz测试
第17项:
14、使用多因素身份认证能够有效减轻下列哪种应用程序的安全隐患:
○A、注入漏洞
○B、跨站点脚本
○C、缓冲区溢出
○D、中间人攻击
第18项:
15、关于XSS跨站脚本攻击,下列说法错误的是:
○A、XSS(crosssitescripting)跨站脚本,是一种迫使Web站点回显可执行代码的攻击技术,而这些可执行代码由攻击者提供、最终为用户浏览器加载
○B、XSS攻击,一共涉及到三方,即攻击者、客户端与网站。
○C、XSS攻击,最常用的攻击方式就是通过脚本盗取用户端cookie,从而进一步进行攻击
○D、跨站脚本攻击,分为反射型和存储型两种类型。
反射型应用最广泛
第19项:
16、线程的安全主要来源于其运行的并发性和对资源的共享性,以下哪种方法可以解决线程死锁安全?
○A、让一个线程在运行时,其他线程必须等待该线程运行完毕才能抢占CPU
○B、通过程序确定资源的合理分配算法,避免线程永远占据系统资源
○C、需要暂停时,让线程的run()方法结束运行以释放资源;继续时,新开辟一个线程继续工作
○D、将线程暂停或继续,在Thread类中置入一个标志,指出线程应该活动还是挂起
第20项:
17、除了使用密钥加密保护数据外,我们也经常使用其他的手段来对数据进行保护,其中内存数据的保护比较重要,那么其基本策略是什么?
○A、所有内存数据使用加密算法加密
○B、敏感数据在内存中长期存在,写入硬盘后加密
○C、敏感数据在内存中保留时间尽可能的短,并确保数据从不写入硬盘
○D、避免内存数据丢失,因此可以长期保留在内存中
第21项:
18、应用程序会受到中间人攻击的主要原因是:
○A、不正确的会话管理
○B、缺乏审计
○C、不正确的存档
○D、缺乏加密
第22项:
19、缓冲区溢出是一种非常普遍和危险的漏洞,指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量而溢出。
那么下列不属于缓冲区溢出产生的后果的是?
○A、程序运行失败
○B、系统宕机,重新启动
○C、软件源代码被篡改
○D、攻击者可能利用它来执行非授权指令,取得系统特权,进而进行各种非法操作
第23项:
20、解决对象序列化安全的办法不包括:
○A、在将对象实现序列化时,进行用户身份认证
○B、不要将敏感信息序列化
○C、不能在对象中保存和某个线程相关的状态
○D、当对象可能被多个线程进行操作时,应该考虑同步问题
第24项:
21、在类中,数据成员分为静态成员和非静态成员,其中静态成员具有共享性,所以就必须考虑其数据安全问题,下列哪些不属于静态成员的注意事项?
○A、静态成员的初始化操作先于对象的实例化而进行,所以在它们的初始化中不要启动线程,以免造成数据访问问题,同时静态成员的初始化操作中应不应该有依赖关系
○B、不用静态变量保存某个对象的状态,而应该保存所有对象应该共有的状态
○C、不用类来访问静态变量,而用对象来访问静态变量
○D、不用对象来访问静态变量,而用类来访问静态变量
第25项:
22、URL安全问题很多都是由于Cookie被盗取导致,请问下列哪项不属于Cookie盗取方法?
○A、利用跨站脚本技术,将信息发给目标服务器,为了隐藏跨站脚本的URL,甚至可以结合Ajax在后台窃取Cookie
○B、通过软件,窃取硬盘下的Cookie
○C、利用客户端脚本盗取Cookie
○D、将Cookie数据保存在服务器短选用session方案
第26项:
23、对于什么样的文件可以不禁止下载()
○A、pdf
○B、exe
○C、bat
○D、com
第27项:
24、下面关于跨站请求伪造,说法正确的是
○A、攻击者不必伪造一个已经预测好请求参数的操作数据包
○B、对于Get方法请求,URL即包含了请求的参数,因此伪造get请求,直接用url即可
○C、对于post方法的请求,因为请求的参数是在数据体中,目前还没有技术支持伪造post请求
○D、因为POST请求无法伪造,因此,采用post方法,可以一定程度预防CSRF
第28项:
25、George在向外部审计员学习了解到他的代码易受攻击之后,决定重写他的一些代码,代码如下所示。
Georg通过改变代码来阻止什么漏洞?
○A、查询字符串操作
○B、XSS攻击
○C、cookie病毒
○D、S
第L注入Q29项:
针对此次Java培训习题,您有什么建议或意见?
____________