IaaS层数据的机密性、完整性和可用性三个方面是用户对于存储数据关注的核心安全问题,也是云存储安全技术的研究重点。比如SalesForce采用SSL 3.0和TLS 1.0保证数据的传输安全,SSL和TLS在传输层对数据进行加密,防止数据被截取和窃听。全同态加密机制可使用户的数据在其整个生命周期都处于加密状态,减少了数据泄露的概率。......
2023-11-18
数据验证码是一项运用非常广泛的技术,尤其在登录系统中数据验证码无处不在。早期的数据验证码是为了防止自动发帖软件而采取的一项技术,它能够有效地防止非人为的发帖行为,提高数据的安全性和完整性。现在的数据验证码可以用在多种场合中,有些对安全性要求极高的登录系统还将验证码技术结合硬件技术,实现更高级的应用。验证码技术经过多年的发展,越来越成熟,越来越多样化,比较常见的有数字或字母验证码、语音验证码、问题对答验证码、日期验证码等。
接下来介绍的验证码是基于ThinkPHP内置的验证码,它能够解决一般数据提前所需要的安全验证,包括纯数字验证、英文字母验证,数字和英文混合验证、中文验证等。验证码又可以按长短、大小写来区分,接下来将详细介绍系统内置的验证码功能。
1.生成验证码
验证码通常是由GD基础类库结合Session实现的一组图片信息,所以要使用验证码需要确保PHP已支持GD库(5.0以上版本已默认支持)。ThinkPHP通过扩展的方式提供验证码功能,所以在初始化验证码时首先需要引入Image系统类库(路径为ThinkPHP/Extend/Library/ORG/Util/Image.class.php),该类库存放了所有关于图片处理的方法(事实上就是对GD基础类库部分功能的封装)。大体上验证码共分为2类,即使用数字或字母的国际化验证码(下称普通验证码)和使用中文汉字的验证码。下面分别介绍。
(1)生成普通验证码
普通验证码是最通用和常用的一种验证码,也是一种最简单易用的验证码。用于生成普通验证码的方法为buildImageVerify,该方法是Image系统扩展类库的成员静态方法,共有6个参数,表现形式为buildImageVerify($length,$mode,$type,$width,$height,$verifyName)。改变buildImageVerify方法参数可以改变验证码的显示样式。如表8-2所示。
表8-2 buildImageVerify方法参数
生成普通验证码非常简单,只需要使用引入系统扩展类即可。假设需要生成一个混合型的验证码,只需要将mode参数设为5即可,如以下代码所示。
如上述代码所示,import函数是一个引入第三方或系统扩展类库的函数。引入Image类库之后,由于buildImageVerify方法是一个静态方法,所以不需要实例化。最终的验证码效果如图8-2所示。
图8-2 验证码
(2)生成中文验证码
中文验证码是一种防猜测更强的验证码,它解决了普通验证码容易被破解导致安全性低的问题,近年来在国内的主流网站中均已被采用,例如QQ安全中心、新浪微博等。中文验证码在国内被广泛采用的根本原因是它与普通验证码相比,防破解能力更强,字体更友好,适合中文网站使用。与语音或多媒体验证码相比,它更直观,终端设备上不需要特殊要求。但是中文验证码也有缺点,最显著的就是中文验证码只适用于面向中文地区的用户。
Image类库中的GBVerify静态方法用于生成中文验证码,使用该方法生成中文验证码是基于字库的,系统并没有自带字库,所以如果需要正确地生成中文字符,首先需要字库。读者可以在网上搜索下载,或者在Windows系统里的C:\Windows\Fonts目录中选择,不同的字库将会显示不一样的文字效果,最后将字库文件复制到ThinkPHP\Extend\Library\ORG\Util扩展目录中。完成上述步骤后就可以使用GBVerify方法了。
GBVerify方法共有6个参数,形式为GBVerify($length,$type,$width,$height,$fontface,$verifyName)。改变参数的值将改变中文验证码的生成效果,如表8-3所示。
表8-3 GBVerify方法参数(www.chuimin.cn)
这里为了方便演示,将使用C:\Windows\Fonts\simhei.ttf字库。有了中文字库,生成中文验证码将变得非常简单,如以下代码所示。
最终的文字是随机的,并且会被加密后存放于Session中。效果如图8-3所示。
图8-3 中文验证码效果
需要说明的是,无论是普通验证码还是中文验证码,GD库生成图片依赖于浏览器Head头信息,所以在Head之前不能有任何的输出,否则将导致生成失败。这也就意味着验证码动作之前或之后都不能有任何的数据被输出,为了保险起见,可以将验证码定义在入口文件中。
2.使用验证码
无论是普通验证码还是中文验证码,最终的文件都是一个图片文件。所以在使用时直接为img标签赋予图片路径即可,如以下代码所示。
如上述代码所示,自定义show脚本函数是用于实现验证码切换(即点击验证码会随机重新分配验证码)。最终效果如图8-4所示。
图8-4 验证码使用效果
上述登录表单将提交到post动作中,在post动作中需要对验证码进行验证,以确保用户输入的验证码有效和正确。如以下代码所示。
有关PHP MVC开发实战的文章
IaaS层数据的机密性、完整性和可用性三个方面是用户对于存储数据关注的核心安全问题,也是云存储安全技术的研究重点。比如SalesForce采用SSL 3.0和TLS 1.0保证数据的传输安全,SSL和TLS在传输层对数据进行加密,防止数据被截取和窃听。全同态加密机制可使用户的数据在其整个生命周期都处于加密状态,减少了数据泄露的概率。......
2023-11-18
为察觉外部安全威胁,在60余个业务中应用了DB快速检查系统,内部人员追加使用了门禁系统。此次下一代DB安全系统构建过程中,掌握公共账户使用现状将成为可能。即使职员没有DB方面的知识,在这种环境下有恶意的DB攻击、信息泄露危险,需要通过DB安全系统进行更改,本案例中将其果断更改。......
2023-11-16
网络应用程序的安全或大数据集群仍是安全保护的重要对象,应优先考虑以下几种重要安全设置。对于保护大数据的安全,从大企业到小的新生企业,数以千计的企业在大数据项目上花费精力。重要的是,需要对有太多问题、太多关注以及太多混乱的大数据安全进行公开问题处理。大数据不是特定技术,而是属性和功能的结合。......
2023-11-16
1)数据准确性的必要性准确性质量标准即数据值的正确程度标准,也即数据库中的数据是否按实际值保存。确认数据准确性的前提条件是数据以确定的形态放在确定的位置。此外,应具有判断准确性的共同标准。管理准确性即掌握要求准确性数据的对象,准确判断各管理对象必须具备的形态的标准,也即准确性检验标准。3)数据准确性诊断项目准确性质量标准与数据应用管理、数据标准管理、数据所有权管理三个流程相关。......
2023-11-16
1)数据可用性的必要性可用性即组织提供必需数据的能力。不仅评价业务执行过程中需要的结构化数据条件,也评价随时可能产生的非结构化数据条件的应用体系。2)数据可用性预期效果通过可用性管理可系统应对用户的要求。3)数据可用性诊断项目可用性质量标准与要求管理(功能性)、数据结构管理、数据应用管理等流程相关。定义和授权要求后,在数据结构中反映并将其结果通过应用监控评测用户的满意度。......
2023-11-16
与数据库安全系统打交道的人员可以分为两类:数据库管理员和普通用户。DBA要对安全负责,所以他(们)要创建授权规则,定义谁可以使用哪部分数据,以及如何使用。图13.1数据库安全系统由图13.1可知,数据库安全系统里存放着授权规则,在每次数据库存取时强制满足其规则。从完整性方面考虑,数据库安全可以包含以下两方面。1)设计阶段的数据库安全在设计阶段必须关注数据库的安全性。DBA负责处理整个数据库系统里的用户账号和口令。......
2023-10-28
(三)备份的策略由于电子阅览室上机读者多,数据变化快,必须要有完善的备份策略。常用的数据库备份操作可通过设置的备份日志自动完成,包括完全备份、差异备份、事务日记备份和数据库文件以及文件组备份四种方式。一般针对月备、周备、日备完全备份,可用做系统失败时恢复数据库的基础。制订备份数据日志检查表,每天定期对备份数据进行检查,查看系统是否完成备份,如出现问题及时解决。......
2023-07-06
大数据设计模型和分配选项在数据集群安全中需要其他读取方法。请参考图8-4的Hadoop设计结构。图8-4Hadoop结构1)分散节点“分散处理比分散数据廉价”,这是大数据的法宝。2) Sharded数据为了确保大数据集群中数据的重复和恢复能力,多个副本移动相互不同节点的流体。想在大数据环境中增加安全功能的话需要扩展数据功能。......
2023-11-16
相关推荐