随着互联网的不断发展,尤其是移动互联网的发展,许多信息传递以及支付交易等都是通过网络实现的,而网络安全就成为了用户担心的问题之一,下面我们就一起来了解一下,目前比较常见的网络安全问题包含哪些类型。
1.不受信的输入、输出
如果一个系统没有与不受信的环境进行的交互,那么这个系统的安全问题是比较小的。大多数系统,特别是Web系统,需要和不受信的环境进行交互;在交互过程中,我们需要特别注意的问题有两点:输入是否合法,输出数据是否包含敏感信息。
输入数据包括并不限于用户输入的参数,传入的文件,读取的环境变量,依赖的运行库等等。如果用户输入的数据超出程序处理的范畴,那么可能造成意想不到的结果。对于这些不受信的数据,我们通常可以限制输入范围,只接受我们可以处理的输入,比如网站注册时对密码的符号有一些限制,就是这种解决方案;我们还可以将输入的数据进行清洗,去除不支持的内容。
对于输出数据我们需要关心输出的内容是否包含敏感信息,比如程序路径、用户名、密码、IP地址等等。如果我们泄漏了服务器的用户名和密码,那么服务器上的所有信息都有泄漏的风险。这需要我们在程序发布之前,仔细检查输出内容。
2.程序本身有错误
如果程序本身有错误,那么就会给攻击者可乘之机;一旦程序触发到错误逻辑,程序有可能偏离正常的运行流程,比如运行了攻击者提供的程序。
对于C语言来讲,常见的程序错误有空指针引用、内存没有释放、多次释放内存、数组引用越界、返回栈上地址、整数溢出等等。这需要代码编写者提高代码编写质量,尽量减少程序错误。
对于Java语言来讲,不存在C语言中的内存管理类似的问题,但一样存在整数溢出、数组引用越界、引用空对象等问题,此外,Java语言还存在错误调用运行时库函数、类型定义错误、序列化和反序列化错误等等Java语言特有的问题。
3.其它错误问题
我们将其它安全问题归入单独分类,这些安全问题包括并不限于以下几点:
业务设计错误:如没有经过认证就读取用户信息
通信协议不安全:如使用了不安全的加密、散列算法
调用的库不安全:如WebServer存在安全漏洞
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!