大厂牛逼架构师:问题2:系统概要设计阶段的非功能需求有哪几种strong>
小李:软件除了实现客户的基本功能需求之外,还要满足预设的非功能性需求,好比冰山下的庞大底座,看不见的东西往往最耗费和考验软件工程师的功力,对架构能力,编码能力要求比较高。主要包含高性能,安全,高可用等。
安全
大厂牛逼架构师:问题4:简单介绍一下数据加密的种类常见的软件安全漏洞讲讲实际工作中应该如何保证软件的系统安全strong>
小李:软件系统系统只有被攻击,数据泄漏之后才意识到安全的重要性。
数据加密的种类有3种:
1,单向加密,比如常用的md5,一般使用的时候还要加个salt,并增加输入的密码复杂性检查,防止彩虹表破解密码;
2,对称加密,常见的比如RSA加密,通过一个秘钥进行加密和解密,只要秘钥不泄漏就是安全的;
除了数据加密,还需要保证数据在传输过程加密,那就要说到https协议了,它是结合使用了对称加密和非对称加密,首先使用非对称加密,产生一个秘钥,客户端拿到秘钥之后,对数据进行对称加密,服务端根据生成的秘钥进行数据解密。充分保证了数据处理的性能和传输数据的安全。
常见的安全漏洞:
HTTP安全漏洞:
1, SQL注入,解决方法使用Preparestatement替代statement处理传输过来的参数;
2,xss攻击,上传攻击脚本到服务器,别的用户获取数据的时候会解析这个攻击脚本,达成攻击目的,解决方式是字符串转义;
可以通过在 关中增加web防火墙或者在代码中增加过滤器来处理。
此外还有硬件和操作系统的安全漏洞,使用软件和组件的安全漏洞等。
实际工作中,应该应该及时升级依赖的软件和组件的版本,
升级版本一般修复了对应的安全漏洞,此外我们应该在程序中做好参数过滤,
最后,应该对最终存储的数据和传输的数据进行加密,提高黑客攻击的难度。
小结
大厂牛逼架构师:
小李架构功夫很扎实。简单的点评一下。
1,不愧是多年的一线开发人员,软件研发流程非常熟悉,而且敏捷研发模式有一定经验;
2,高性能是非常重要的非功能需求,调优方式7中都答的很到位;
3,安全性也是非常重要的,数据加密分类清晰,http的攻击防护手段有所了解;
4,高可用的手段总结的很到位;
小李:感谢您的评价,希望有机会合作,为企业打造数字化产品帝国。
故事讲完。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!