PHP工程师、安全工程师面试题及详细答案_第1页
PHP工程师、安全工程师面试题及详细答案_第2页
PHP工程师、安全工程师面试题及详细答案_第3页
PHP工程师、安全工程师面试题及详细答案_第4页
PHP工程师、安全工程师面试题及详细答案_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP工程师、安全工程师面试题及详细答案第一部分:PHP工程师面试题(含基础、进阶、实操、框架)一、基础语法面试题1、PHP中echo、print、print_r、var_dump的区别?参考答案:1.echo:语言结构,不是函数,无返回值,输出字符串、数字等基础类型,执行效率最高,日常输出首选。2.print:也是语言结构,有返回值(固定返回1),只能输出单一值,效率比echo低,使用场景极少。3.print_r:专门用于打印数组、对象,只会输出值,不显示数据类型,输出字符串、数字时效果和echo类似,适合调试查看数组结构。4.var_dump:调试专用,会同时输出数据的值、类型、字符串长度、数组元素个数,可精准查看变量真实数据结构,开发调试最常用。2、PHP常量和变量的区别?常用常量定义方式?参考答案:区别:变量可以随时赋值、修改、销毁,作用域灵活;常量一旦定义无法修改、无法销毁,全局通用,默认大小写敏感。两种定义方式:1.define():函数式定义,可在代码任意位置定义,支持大小写不敏感设置,全局生效。2.const:关键字定义,只能在顶层作用域或类内部使用,编译阶段加载,效率更高,推荐项目常量使用。3、PHP数据类型有哪些?标量类型包含什么?参考答案:PHP数据类型分为四大类:1.标量类型(基础类型):整型int、浮点型float、字符串string、布尔型bool2.复合类型:数组array、对象object3.特殊类型:资源resource、空值null4.伪类型:mixed、number等(多用于函数参数注释)二、核心进阶面试题1、PHP传值赋值和传引用赋值的区别?参考答案:传值赋值:默认赋值方式,新变量会复制原变量的值,两个变量相互独立,修改其中一个不会影响另一个,占用双倍内存。传引用赋值:使用&符号,新变量和原变量指向同一个内存地址,本质是同一个数据的别名,任意一个变量修改值,另一个都会同步变化,节省内存,适合大数组、大对象赋值场景。2、session和cookie的区别及使用场景?参考答案:1.存储位置:cookie存储在客户端浏览器,session存储在服务器端2.安全性:cookie可被前端修改、窃取,安全性低;session数据存在服务端,安全性更高3.存储大小:cookie有大小限制(单条4KB左右),session无严格大小限制4.生命周期:cookie可设置持久化过期时间,关闭浏览器可保留;session默认浏览器关闭即失效5.依赖关系:session依赖cookie存储session_id,禁用cookie时可通过URL传参实现session复用使用场景:cookie用于存储用户偏好、记住登录状态、非敏感轻量数据;session用于存储用户登录信息、权限数据、敏感临时数据。3、PHP超全局变量有哪些?各自作用?参考答案:超全局变量全局可用,函数、类内部无需声明即可使用:1.$_GET:获取URL地址栏传参数据2.$_POST:获取表单POST提交数据3.$_REQUEST:合并获取GET、POST、COOKIE数据,优先级可配置,不推荐常用4.$_SERVER:获取服务器信息、请求头、请求地址、请求方式等5.$_COOKIE:获取客户端cookie数据6.$_SESSION:操作服务端session数据7.$_FILES:获取文件上传的文件信息、临时路径8.$_ENV、$GLOBALS:分别获取环境变量、全局所有变量4、PHP面向对象三大特性及实际应用?参考答案:1.封装:将属性和方法封装在类中,通过访问修饰符(public、protected、private)控制访问权限,隐藏内部实现细节,统一对外调用接口,项目中用于封装工具类、数据库操作类。2.继承:子类继承父类的属性和方法,实现代码复用,减少重复代码,常用于封装基础控制器、基础模型类。3.多态:子类重写父类方法,同一个方法在不同子类中实现不同逻辑,适配不同业务场景,常用于支付接口、短信接口多场景适配。三、数据库与实操面试题1、PHP防止SQL注入的常用方法?参考答案:1.禁止直接拼接SQL语句,这是注入的核心原因2.使用PDO、MySQLi预处理语句+参数绑定,参数和SQL语句分离,彻底杜绝注入3.对用户输入进行过滤、转义,过滤特殊字符4.数据库账号最小权限配置,避免注入后拖库、删库风险5.框架层面使用ORM模型,自动处理参数绑定,规避手写SQL风险2、PHP文件上传漏洞如何防护?参考答案:1.校验文件后缀名,只允许图片、文档等指定合法后缀,禁止php、exe、jsp等可执行文件2.校验文件MIME类型,防止后缀伪造绕过3.获取文件真实文件头,验证文件真实类型,杜绝伪装文件4.上传目录禁止脚本执行权限,即使上传恶意脚本也无法运行5.上传文件重命名,避免覆盖原有文件、路径绕过6.限制上传文件大小,防止超大文件恶意上传占用服务器资源四、框架与项目面试题(以ThinkPHP/Laravel通用)1、TP框架MVC分层各自作用?参考答案:1.Model模型层:负责数据库交互、数据校验、数据处理、业务逻辑封装2.View视图层:负责页面展示、数据渲染,返回前端页面、接口数据3.Controller控制器层:接收前端请求,调用模型处理数据,调度视图返回结果,不写复杂业务逻辑2、PHP常见报错级别及调试技巧?参考答案:常见报错:致命错误(FatalError)、警告错误(Warning)、提示错误(Notice)、严格模式错误调试技巧:开启错误日志、关闭生产环境错误页面输出、使用var_dump/print_r打印变量、断点调试、记录接口请求日志,线上通过日志文件排查问题。第二部分:安全工程师面试题(基础、Web安全、漏洞防护、运维安全)一、安全基础面试题1、网络安全三大核心要素是什么?参考答案:1.保密性:保证数据仅授权人员可查看,禁止未授权访问、窃取数据2.完整性:保证数据传输、存储过程中不被篡改、伪造、损坏3.可用性:保证系统、数据、服务在授权访问范围内正常可用,不被恶意攻击导致瘫痪2、常见网络攻击类型有哪些?简单说明原理参考答案:1.DDOS攻击:通过海量虚假请求占用服务器带宽、资源,导致正常用户无法访问服务2.端口扫描:通过工具探测服务器开放端口、服务版本,寻找薄弱点进行入侵3.暴力破解:批量遍历账号、密码组合,破解登录权限,窃取系统权限4.中间人攻击:拦截、篡改客户端和服务端之间的传输数据,窃取敏感信息二、Web安全核心面试题(高频)1、SQL注入漏洞原理、危害及完整防护方案?参考答案:原理:开发者直接拼接用户可控输入到SQL语句中,攻击者通过构造特殊字符、SQL语句,篡改原查询逻辑,操作数据库。危害:查询泄露敏感数据、篡改删除数据、拖库、获取服务器权限、植入后门。防护方案:1.代码层:使用预处理语句参数绑定、ORM框架,禁止手动拼接SQL2.输入层:过滤特殊字符、限制输入长度、白名单校验输入内容3.权限层:数据库账号最小权限,禁止root、最高权限账号对接业务4.设备层:部署WAF防火墙,拦截恶意SQL攻击语句2、XSS跨站脚本攻击分类、原理及防护?参考答案:分类:存储型XSS、反射型XSS、DOM型XSS原理:网站未过滤用户输入的JS脚本,脚本被执行后,窃取用户cookie、劫持页面、跳转恶意链接、伪造用户操作。防护方案:1.输入过滤:过滤、转义HTML、JS特殊字符2.输出编码:前端渲染数据时统一编码输出3.设置CookieHttpOnly属性,禁止JS读取cookie4.配置CSP内容安全策略,限制脚本执行来源3、CSRF跨站请求伪造原理与防护?参考答案:原理:利用用户已登录的浏览器会话,诱导用户在第三方页面触发网站请求,伪造用户身份执行操作,比如修改密码、下单、转账等。防护方案:1.核心:使用Token令牌校验,每次请求携带唯一随机Token,服务端校验一致性2.校验请求来源Referer、Origin,拦截非法跨域请求3.敏感操作增加二次验证、验证码、短信验证4、文件包含漏洞原理及防护?参考答案:原理:代码中动态引入文件时,文件路径由用户可控,攻击者可通过修改路径引入恶意文件、本地文件、远程木马文件,执行恶意代码。危害:读取服务器敏感配置文件、执行恶意脚本、获取服务器权限。防护方案:1.禁止用户可控参数拼接文件路径2.使用白名单限制可包含的文件名称、路径3.关闭PHP远程文件包含配置,限制本地文件读取权限4.过滤路径跳转字符(../),防止目录遍历三、服务器与运维安全面试题1、服务器常见安全加固措施有哪些?参考答案:1.系统加固:关闭无用端口、关闭多余服务、定期更新系统补丁、修复漏洞2.账号加固:修改默认账号密码、禁止root远程登录、密码复杂度策略、定期更换密码3.权限加固:文件、目录最小权限配置,禁止777万能权限,区分读写执行权限4.日志加固:开启系统、网站访问日志,定期审计日志,及时发现异常访问、攻击行为5.防护部署:部署防火墙、WAF、入侵检测系统,拦截恶意攻击6.数据加固:定期数据备份、敏感数据加密存储、禁止明文传输数据2、端口暴力破解防护方法?参考答案:1.修改SSH、远程登录默认端口2.开启登录失败锁定策略,多次登录失败后封禁IP3.使用密钥登录替代密码登录4.防火墙限制指定IP段访问核心端口5.部署防爆破工具、实时监控异常登录行为四、漏洞应急与安全规范面试题1、发现网站漏洞后的应急处理流程?参考答案:1.应急阻断:临时关闭漏洞接口、封禁攻击IP、暂停相关服务,防止漏洞被持续利用2.漏洞研判:确认漏洞类型、危害范围、是否已被利用、数据是否泄露3.漏洞修复:根据漏洞原理快速打补丁、修改代码、加固配置4.日志溯源:查看访问日志、攻击轨迹,统计攻击次数、影响范围5.复盘加固:优化安全策略,新增防护规则,避免同类漏洞复现6.存档记录:整理漏洞报告、修复记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论