隐藏按钮够吗?
计算机原理 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
会话 ID 可预测会怎样?
怎么解决令牌作废问题?
短信验证码算强因素吗?
更好的策略是什么?
站点该怎么防?
怎么防?
怎么防?
怎么防?
怎么防?
参考答案(家长):攻击者能直接猜出别人的会话,冒充登录。
参考答案(家长):完全不够,接口必须自己校验角色。
参考答案(家长):偏弱,有被劫持和补卡的风险,但比只有密码好。
参考答案(家长):缩短有效期加刷新机制,再配一个黑名单。
参考答案(家长):限速、异常登录检测、比对已知泄露库。
参考答案(家长):鼓励长口令、检查是否在泄露库里、只在怀疑泄露时才要求改。
参考答案(家长):把路径规范化后校验是否仍在允许目录内。
参考答案(家长):不反序列化不可信数据,用只含数据的格式并做白名单校验。
参考答案(家长):存到不可执行目录、重命名、校验真实类型、隔离域名提供访问。
参考答案(家长):白名单目标地址,禁止访问内网段,禁止跟随重定向。
为什么覆盖返回地址很危险?
现在还能这么做吗?
攻击者怎么绕过?
这说明了什么?
它怎么被削弱?
这能防住所有溢出吗?
这怎么导致漏洞?
怎么防?
这说明什么?
这类漏洞怎么防?
参考答案(家长):基本不能,栈已被标记为不可执行。
参考答案(家长):函数返回时会跳到攻击者指定的位置执行。
参考答案(家长):防御和攻击是不断升级的军备竞赛。
参考答案(家长):不注入新代码,而是复用程序里已有的代码片段。
参考答案(家长):不能,比如精确改写某个局部变量就绕过了。
参考答案(家长):如果存在信息泄露漏洞,攻击者能先泄露地址再利用。
参考答案(家长):释放后置空指针,或者用有所有权检查的语言。
参考答案(家长):分配了很小的缓冲区,却按原本的大长度去写。
参考答案(家长):让检查和使用成为一个原子操作。
参考答案(家长):换用内存安全的语言,能一次性消除大部分漏洞类别。
字符串比较为什么要恒定时间?
这类攻击难防在哪?
怎么降低?
判断标准是什么?
怎么自动化?
检查你的项目符合吗?
举一个反面例子。
这叫什么原则?
为什么自己写危险?
怎么处理必须记录的敏感字段?
参考答案(家长):它利用的是硬件优化机制本身,不是软件 bug。
参考答案(家长):提前返回会暴露前几位是否正确,能逐位猜出来。
参考答案(家长):功能占比小、自己几十行能写,就别引依赖。
参考答案(家长):锁定版本、校验哈希、审查新依赖、减少不必要的依赖。
参考答案(家长):大多数项目第一次检查都会发现权限给多了。
参考答案(家长):用依赖扫描工具接进持续集成,发现即告警。
参考答案(家长):失败关闭,而不是失败打开。
参考答案(家长):默认空密码、默认对公网开放、默认开启调试接口。
参考答案(家长):脱敏,比如只记后四位。
参考答案(家长):安全代码的正确性极难自测,错了也看不出来。