您是否有正式的软件开发相关工作经验?
没有,是应届生/在校生
1年以内
1-3年
3-5年
5年以上
您是否参与过需要满足等级保护要求的项目开发?
从未参与
参与过1个
参与过2-5个
参与过5个以上
以下哪种密码存储方式是最安全的?
明文存储
MD5加密后存储
加盐后SHA256加密存储
BCrypt加盐加密存储
应对SQL注入攻击,以下哪种方式最有效?
对输入进行过滤转义
使用预编译语句(参数化查询)
前端做输入校验
关闭数据库外部访问
关于XSS跨站脚本攻击,以下说法正确的是?
XSS只能窃取用户Cookie,不会造成其他危害
存储型XSS危害比反射型XSS更大
只要使用HTTPS就可以完全避免XSS
XSS攻击只会影响前端,不会危害服务器
开发过程中获取用户敏感信息,以下做法正确的是?
为了方便调试,把用户身份证号、手机号打印到日志里
只收集业务必须的信息,不需要的信息不采集
为了后续排查问题,永久存储用户的银行卡信息
把用户敏感信息和业务数据存在同一个表,不需要加密
以下哪些行为属于不安全的开发习惯?(可多选)
将数据库密码硬编码在代码中并提交到代码仓库
使用官网下载的最新稳定版开源依赖
使用存在已知高危漏洞的旧版本依赖
测试完成后保留测试用的后台后门方便调试
对外输出接口时对返回数据做敏感字段脱敏
用户上传文件功能中,为了避免安全风险,以下做法错误的是?
限制文件大小和文件类型
将上传文件存储在可执行权限之外的目录
直接使用用户上传的原始文件名保存文件
对上传文件进行病毒扫描
关于JWT令牌存储,以下做法最安全的是?
存储在localStorage中,每次请求自动携带
存储在未设置HttpOnly的Cookie中
存储在设置了HttpOnly、Secure属性的Cookie中
存储在Vuex状态中,刷新页面就丢失
你发现线上项目使用的某个开源依赖存在高危漏洞,你第一步会怎么做?
反正没有被攻击,先不管等版本更新再说
立即评估影响范围,升级到官方修复后的安全版本
漏洞信息网上已经公开了,不用自己处理
自己修改漏洞代码,不测试直接上线
跨域请求中,后端设置`Access-Control-Allow-Origin: *`,以下说法正确的是?
这是正确的配置,适合所有接口开放场景
允许任意域名跨域请求,会带来CSRF等安全风险
只要接口不涉及敏感数据,这样配置就是绝对安全的
可以有效防止XSS攻击
以下哪一种不属于常见的敏感数据分类?
用户个人身份信息
公开的产品介绍文档
用户支付相关信息
企业核心业务数据
CSRF跨站请求伪造攻击的核心原理是?
利用浏览器对同源域名Cookie的自动携带特性
窃取用户的本地存储数据
在网站中注入恶意脚本
破解用户的登录密码
防范CSRF攻击,常见的有效手段有哪些?(可多选)
验证Referer头
使用CSRF Token验证
给Cookie设置SameSite属性
使用复杂的用户密码
关于数据脱敏,以下做法错误的是?
用户手机号展示为138****1234
生产环境的测试数据直接使用真实用户数据
日志中输出用户信息时自动脱敏敏感字段
对外提供测试数据时对所有敏感信息做替换处理
使用第三方API服务时,API密钥应当如何保管?
写在前端代码中,方便调用
放在服务端环境变量中,不暴露给前端
提交代码的时候一起放到Git仓库
分享给其他项目一起使用,方便管理
以下哪种缓存系统的配置方式最容易导致缓存穿透问题?
对查询不存在的数据也缓存一个空值
使用布隆过滤器过滤不存在的key
不做任何处理,直接查询缓存和数据库
给缓存设置合理的过期时间
请简单描述你在过往项目中,遇到过的数据安全相关问题,以及你是如何解决的?
你是否了解《网络安全法》《个人信息保护法》中与软件开发相关的合规要求?
完全不了解
了解基本要求
比较熟悉,开发中会遵循要求
非常熟悉,参与过合规相关整改
在开发用户注册功能时,对密码复杂度要求描述正确的是?
不需要要求,方便用户注册最重要
要求密码长度不低于8位,同时包含字母和数字
要求用户必须每三个月更换一次密码,不允许重复使用旧密码
要求密码长度不低于16位,必须包含大小写字母、数字和特殊符号