写点什么

架构师训练营第十一周作业

用户头像
无语
关注
发布于: 2020 年 12 月 02 日

课程总结

常见架构安全问题

SQL 注入

SQL 注入(SQLi)是一种注入攻击,,可以执行恶意 SQL 语句。它通过将任意 SQL 代码插入数据库查询,使攻击者能够完全控制 Web 应用程序后面的数据库服务器。攻击者可以使用 SQL 注入漏洞绕过应用程序安全措施;可以绕过网页或 Web 应用程序的身份验证和授权,并检索整个 SQL 数据库的内容;还可以使用 SQL 注入来添加,修改和删除数据库中的记录。


csrf(跨站请求伪造)攻击

CSRF(Cross-site request forgery):跨站请求伪造。利用用户对网站的信任

方法一: Token 验证:(1)服务器发送给客户端一个 token;(2)客户端提交的表单中带着这个 token。(3)如果这个 token 不合法,那么服务器拒绝这个请求。

方法二:隐藏令牌:把 token 隐藏在 http 的 head 头中。 方法三: Referer 验证:Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。

xss(跨站脚本)攻击

不需要你做任何的登录认证,它会通过合法的操作(比如在 url 中输入、在评论框中输入),向你的页面注入脚本(可能是 js、hmtl 代码块等)盗用 Cookie 破坏页面的正常结构,插入广告等恶意内容 D-doss 攻击

是向网站 注入 JS 代码,然后执行 JS 里的代码,达到篡改网站的内容目的。


安全架构

安全架构包含哪些方面

  1. 权限控制

  2. 信息加密及秘钥管理

  3. 设置web防火墙

  4. 网站漏洞扫描

  5. 规则引擎


高可用架构度量

度量指标

业界通常用多少个 9 来衡量网站的可用性,如 QQ 的可用性是 4 个 9,即 QQ 服务 99.99%可用,这意味着 QQ 服务要保证其在所有运行时间中,只有 0.01%的时间不可用,也就是一年中大约 53 分钟不可用。网站年度可用性指标=(1-网站不可用时间/年度总时间)×100%。网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点。

故障分管理


故障的处理

一般有监控中心或者事故管理小组管理故障的整个过程。


课后作业

请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文),返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。

  public Boolean checkPW(String userId, String pwd, String cipher){        if(validpwd(userId+"_"+pwd,cipher)){            return true;        }        return false;    }
private Boolean validpwd(String key ,String value){ if(encodeBySHA256(key) == value) return true;
return false; } /** * encode By SHA-256 * @param str * @return * 实际生产环境需要加盐处理,防止撞库攻击 */ public static String encodeBySHA256(String str) { if (str == null) { return null;}
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.reset(); messageDigest.update(str.getBytes()); return getFormattedText(messageDigest.digest());
} catch (Exception e) { throw new RuntimeException(e);}
}
private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5','6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
复制代码


用户头像

无语

关注

还未添加个人签名 2018.08.11 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第十一周作业