博客
关于我
面试刷题27:程序员如何防护java界的新冠肺炎?
阅读量:446 次
发布时间:2019-03-06

本文共 724 字,大约阅读时间需要 2 分钟。

背景

安全是软件设计的第二个非功能性需求,一般是当软件出现安全问题的时候才会得到重视。

最明显的比如 数据库用户信息和密码泄漏等;

数据加解密技术

单向加密

md5+salt值, 这个是软件设计中使用的比较多的。

但是要预防彩虹表的解密,在加密前校验密码的规则,符合安全等级。

对称加密

编程中用的比较多的是RSA加密,即增加一个秘钥。可以通过秘钥进行加解密。

效率比较高。安全性也比较高,但是要预防秘钥的泄漏。

非对称加密

即使用证书,公私钥对,一般是使用公钥解密,私钥加密;

比如数字证书,对外发的文件,通过私钥加密,拿到公钥可以解密,也可以确定文件的可靠性。

HTTPS: 是一种综合利用非对称和对称加密的协议。

首次建立连接使用 私钥生成一个秘钥,客户端拿到证书之后,使用它对传输内容进行加密,服务端使用秘钥进行解密。兼顾了效率和安全。

http攻击和防护

SQL注入

在参数中加入非法的sql,直接传递到数据库执行,达成攻击目的。

预防方法:使用PrepareStatement

XSS

即把攻击脚本当成数据保存在服务端,其它用户使用该数据的时候,会转换成攻击脚本,泄漏用户信息等。

预防方法:增加请求过滤;设置web防火墙;

小结

实际工作中如何保证软件系统的安全:

  1. 增加代码层面的请求过滤;

  2. 及时更新各种软件和组件的版本,修复安全漏洞;

  3. 对数据进行加密,及时出现问题也对数据安全进行了保护。

原创不易,点赞关注支持一下吧!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。

我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各种资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!

你可能感兴趣的文章
Laravel - 上手实现 - 文件上传、保存到 public 目录下
查看>>
将mongo设置为windows的服务
查看>>
【Flink】Flink 底层RPC框架分析
查看>>
【集合框架】JDK1.8源码分析之LinkedList(七)
查看>>
Jenkins 集成postman 自动化运行接口测试用例
查看>>
django+appium实现UI自动化测试平台(开源部分,可定制开发)
查看>>
第七届C/C++B-方格填数 DFS
查看>>
数据结构课设--3哈夫曼编码译码系统(树应用)
查看>>
pku 1061 青蛙的约会 扩展欧几里得
查看>>
Spring Boot 2.4 配置文件将加载机制大变化
查看>>
也来玩玩 javascript对象深拷贝,浅拷贝
查看>>
【转载】Kubernetes CNI网络最强对比:Flannel、Calico、Canal和Weave
查看>>
Kubernetes实战总结 - 动态存储管理StorageClass
查看>>
wcf webHttpBinding Post 大数据量提交 ios c#客户端
查看>>
[LeetCode题解]141. 环形链表 | 快慢指针
查看>>
MySQL错误日志(Error Log)
查看>>
源码解析之 Mybatis 对 Integer 参数做了什么手脚?
查看>>
oracle使用DBMS_RANDOM包生成随机数据
查看>>
C++高精度模板
查看>>
错题重错之WYT的刷子 单调队列
查看>>