Java Web基础知识之安全:人生苦短,注意安全

Posted lmy86263

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Web基础知识之安全:人生苦短,注意安全相关的知识,希望对你有一定的参考价值。

关于web程序中的安全方面,想必大多数人都不甚了解,或者说感觉没有必要了解,身边开发网站的人主要就是注重后台的功能和前台的界面,不要说程序的安全问题,甚至后台数据库访问的问题可能都没有下大力气解决。但是这又是和我们密切相关的一个问题,每天看到网站哪个系统或者网站又出现安全问题都感觉离自己很遥远,其实这只是一个错觉,还是那句话——人生苦短,注意安全(某些人不要理解错了,说的就是你。。)。写这篇文章的时候,恰好想起来本屌丝考大学报志愿的时候,那时候北邮新开了一门专业叫信息安全,那个年代还不是很火,但是凭借本屌丝敏锐的洞察力(其实是情怀啦)一眼就看出来了该专业的前景,但是遗憾的是刚刚开办,还不招生。。。遗憾啊!!

保护我们的web程序可以通过声明和编程两种方式来完成,但是不管是哪种方式,都要满足web安全性的这4个方面:

  • 验证:这是我们最熟悉的,每个一开始开发web程序的人都会做一个登录页面,这其实就是在验证web使用者的身份,这里的web使用者不一定是人,也可以是程序,比如某些爬虫程序想要爬取一些页面时,这就需要他们提供用户名和密码;
  • 授权:关于这个应该也比较熟悉,但是由于我们不太关注,导致忽略了这一点,它主要关注被验证使用者的级别,是在上一步验证成功之后进行的,它的作用就是用来限制某个用户是否有权限进入web程序的某一个部分,直观点说,一个网站有普通用户,也有管理员,还有什么内容编辑等等,虽然他们都能登录成功,但是普通用户和页面编辑是不能进入网站的管理界面的,这就是他们没有得到网站拥有者的授权,这里的实现方式是通过建立角色来完成的,给予每个人特定的角色,然后规定一种角色能够访问web程序的哪些部分,最近Facebook奖励给发现Instagram漏洞的10岁儿童一万美金,就是出现了授权的漏洞。
  • 加密:这就比较好理解了,因为数据自互联网上进行传输的时候是从一台计算机传到另一台计算机,等到了服务器时,可能已经经过了不止一台计算机,这就给别人拦截数据提供了极大地方便,因此我们需要对传输的数据进行加密,关于加密算法有很多,慕课网上有很多加密算法的讲解,可以去看一下;
  • 完整:关于数据的完整性,简单来说虽然你加密了传输的数据,但是人家还是可以拦截,可能只是读不懂是什么意思,但是可以随便更改,到接收方就无法确认该数据是否还是从客户端发出的数据,这样就无法保证数据的完整性了,像数字电路中还有奇偶校验位来保证数据传输的正确,在web程序中可以通过建立一个安全通道来传输数据。
关于web应用程序的安全管理是使用声明还是编程呢?其实这是取决于具体的业务要求,它们两个各有各的优点和缺点:

以上是关于Java Web基础知识之安全:人生苦短,注意安全的主要内容,如果未能解决你的问题,请参考以下文章

人生苦短,我用Python

人生苦短,我用Python---Python学习笔记之四

人生苦短,我用Python(目录)

人生苦短,我用Python(目录)

人生苦短 我学python之OldBoy21天入门_day01·Python基础语法

人生苦短,我学python