对B/S架构系统的安全性认识

摘要:网络安全在我们的生活中变得越来越重要,因为我们使用网络的平率越来越高,用户的要求和功能的提升也越来越高,所以,在一个危险的网络环境中去适应去预防危险的发生,防止信息被窃取,破坏和使用,下面我结合自己的实际开发以及对自己在学习网络安全的过程中的学习谈一下自己的认识。
关键词:B/S架构 信息安全 开发 攻防
正文:
由于我本人是主要往网站后台方面发展的,主要研究php开发,所以关于安全的讨论,主要围绕B/S的系统结构来说的,主要有一下几个方面我要说:
1:浅浅的说一下开发流程(以php为主),包括技术需求,项目开发的基 本流程,然后结合我平时做的一些项目,说一下对项目的理解。
2:关于普遍的安全性问题做一下列举,说明其危害性与潜在的危害性。
3:着重说一下我在开发过程中以及在平时老师讲课的过程中我得到的经
验,谈一些看法和建议。

1:项目开发流程:
虽然自己的很多专业课程到大三才学习,但是我已经把他们全部学完了,我说的学,不是看书,是看完之后要必须做出东西,否则我感觉学习前面的里面是没有意义的,就好比只学习数据库知识,但不知到如何用后台语言去操作数据库,那学习数据库又有什么意义呢,所以这么认为,学习,必须学以致用。然后,就是说一下我平时对网站后台开发的过程和技术基本的分析:
我们平时去浏览一个网站,可能去浏览网页,购物,看视屏等等,我们在使用其功能的过程中是完全体会不到其背后的变化的,首先,我们输入一个网址,浏览器拿到域名,看一下本地有没有对应的解析,没有就往上一级寻找,直至找到,然后向对应的IP的主机发送http请求,这是web服务器会接收这个请求并且处理,这里的处理通俗的说我认为应该是分配,如果是一个静态页面,或直接打回到响应报文,这是浏览器会受到响应报文,并且对响应报文进行渲染解析,但是如果是一个动态页面的话就不一样了,需要注意的是,所谓动态,不是能动的页面,而是能和服务器进行二次或多次(我起的名字,可能不太正规)数据交互的页面,在web服务器接收到请求之后,如果发现是动态页面,他们把她找到并且把它发送到对应的模块去解析执行,我php的和就有php模块去解析执行,这个解析过程和web服务器就没有关系了,这整个过程已经不再是由浏览器执行,只有为什么要这样做,后面会说,这里在执行的过程中如果是还要用到数据库,必然还会和数据库发生交互,当所有的后台代码执行完毕之后,会把执行完的代码原封不动的返回浏览器,这个原封不动很重要,以前学习服务器执行流程就在这里有些困难,因为比如echo “<h1 style=‘color: red‘>xuning</h1>”; 这样的东西,在浏览器端必然是要解析执行的,会出现我的汉语拼音名字为红色的h1大小字体,这样的话,就说明了一个一般网页浏览的内部执行流程。
而一个项目的开发,我认为是一个技术的综合,这么说吧,B/S开发,主要分为前端和后台,虽然我主要写后台,但前端也没有问题,前段说白了就是给人看的东西,就是所谓的静态网页,静态网页的结构是这样的,以html做页面的节本结构,css做样式处理。JavaScript做行为处理,这是一个基本的结构,也是最为传统的结构,之所以我说传统,因为现如今的html5,css3很让我感到费解,html去产生一点样式还无可厚非,但是还有大量的行为标签,这样的话就彻底的破坏了文档结构,虽然有的时候会让自己节省一些代码,但是从我自身的感觉来说,是不舒服的,而且,html和css就是一个规范,再强大也不会比一个脚本强大,然后就是后台开发,这个就相比较为复杂了,因为要后台的任务主要就是处理业务逻辑,这句话我一开始学的时候是没有什么体会的,后来才逐渐明白其重要性,php是一门后台语言,还有asp.net和jsp都是,后两者我没有过多的接触,php的开发环境我绝得是不错的,因为环境所有的内容几乎都是开源的,而且有zend进行维护,web服务器自然以大名鼎鼎的apache为主,数据库一般采用mysql数据库,操作系统追求好的性能的话就使用linux系统,这就是LAMP开发环境的由来。
这样,简要的说了一下开发流程,然后结合我最近一些项目说一下,其中的安全性问题。
以第一个arm的信息处理系统,这本来是楼下的一个物联网实验室要做的项目,但是他们想把arm的数据通过浏览器进行查看和控制,这样的话,我们起初设计了两个解决方案,一个是往数据库里面去写入数据,然后我这里直接操作数据库。另一个方案是把数据发送到服务器然后写入数据库,处理,这里的话,处于很多的原因,我们选择了前者,其中一条原因就是关于安全的因素,如果数据以get的方式发送必然存在安全隐患,以post的方式的话效率会变慢,而且后面还要写入数据库,但如果直接操作数据库的话,不仅仅效率提高了,而且安全性也相应的提高。另外的一个项目就是利用ajax无刷新的生成绘图,这里的绘图就要考虑安全因素了,绘图有前端绘图和后台绘图,前者好看,但是有一个致命的缺点就是数据可以被用户随意改变的,但是后者就不一样,它就现在服务器运行,生成一种数据图片,这张图片会被打回浏览器,用户看到的只是一张图片,我们都知道,图片的报表数据修改几乎是及其困难的,这样就保证了数据报表的安全性。
2:普遍存在的安全性思考:
至于这方面,我相信在往后的日常中,会越来越明显,记得老师放了一个315关于网络wifi安全的视屏,那就是一个局域网窃取他人数据的方式,手段虽然不是很高明,但是,它利用了有些人贪图小便宜的特点,诱骗其上钩,当自己的信息暴漏在他人的面前,你的隐私,财产等安全也会变弱,又比如说,有这么一种网站,看着和某一个大型网站看着挺像的,有的完全一样,这根本没有什么难度,但是,当你登录的时候,你的用户名密码就是发送到指定的地址,其实这个也没有说明难度,在静态页面加一点ajax无刷新发送数据的代码就可以,这个过程你不进行专业抓包检查是很难看出来的。但是你想看出来也很简单,黑客网站除非有能力虽那些大型网站进行域名劫持,否侧他们的域名是不同的,假的就是假的,一看就可以知道,因为域名具有唯一性,如果发现网站地址和实际地址不同,基本可以判定这就是钓鱼网站。这是一方面安全问题,还有就是验证方法,安全性很高的网站,会做很多关于验证的方式,如验证码,数字证书,手机短信等等,
虽然在速度上面会有下降,但是,能在安全性上面得到很大的提高,在当今社会,安全变得越来越重要。而且,信息安全存在着潜伏性的特点,就是说一些危害的因素会在特定的时间和特定的地点发生特定的作用,我们可能平时感觉不是很明显,但是危险一旦发生,后果可能将是无法挽回的,所以防患于未然,是非常重要的。
3:经验总结:
说道经验总结,在我看来,这些经验都是建立在错误的基础之上的,因为在平时遇到错误,接下来就去解决错误,在解决错误的过程中一步步的吸取教训,这个过程是痛苦的,也是让自己比较欣慰的,因为我现在明显绝得我解决问题的能力在明显的提高,这种能力在项目开发包括应对安全问题是非常重要的,其次,就是理论知识,把理论学习扎实,然后结合实践才会有那种让人突然兴奋的理解,这些,是做项目的基本能力,然后,主要说一下我结合平时我的个人生活对于网络安全的认识和具体防范措施,我身边唯一能和网络发生接触的是我的手机和笔记本,手机是随身携带的物品,使用想当的频繁,我一般用来打电话,发短信,上网等,这个过程前两者相对较为安全,因为在依托一个强大的平台,而上网作为手机的主要功能,存在着非常大的安全隐患,我曾经尝试着这一个权威的网站页面嵌入我写的一段脚本,主要是异步请求形式把数据偷偷的发送给指定的IP,这样用户名密码都可以写入我的数据库里面,这样的测试结果,显然是不让人高兴的,网络的安全性岌岌可危,当然不会有用户这样可以去做,但是如果是外部的危险因素影响呢,我也不可能每次浏览网页都去查看代码,面对这种社会工程学攻击方式,不是没有防范措施的,如我会尽可能的限制各种软件的权限,不会让他们或得我太多的信息,就像位置信息,相机信息,系统高级权限,电子邮件等,然后安装一些杀毒软件,虽然在平时的使用中,没有发现亮点,但是有总比没有强的,在一些关于自己重要隐私的地方,我一般都会使用数字密码加密,当然土豪的话使用指纹解锁也再好不过了,这些是关于手机的防范安全的措施,下面就是电脑的防范,电脑和手机是具有同样的道理的,但是在一些地方,电脑和手机是存在很多不同之处的,如我一直以为电脑不联网就是安全的,但是当我们的电脑在局域网环境,其它电脑是可以通过一些技术手段对其进行控制的,包括摄像头,屏幕,鼠标等,这样就变得非常可怕,所有的信息都暴露在别人的眼光之下,对于这种问题,我做的是,在平时不用不用摄像头的时候就用一个不透明的纸挡住,如果自己在平时只用电脑的过程中发现鼠标不自主的移动,这可能就遇到问题了,这时应该关掉所有外部网络,问题就会随之解决,另外,我们对于文件的访问权限也应该做具体的限制,这样黑客程序就不能随意的窃取我们的文件。

注: 原创作者-徐宁
如转载请注明,尊重原创
技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。