使用Zend Framework 2提高Web应用程序的安全性

在开发新网站或Web应用程序时,您不能花费足够的时间来考虑安全性。 攻击者可以多种方式入侵您的Web应用程序,并且您需要严格地在应用程序代码中实现安全性最佳实践,以确保用户免受攻击。

如果您是PHP开发人员,那么Zend Framework将使此任务更加容易,Zend Framework提供了许多现成的组件来提高应用程序的安全性。 在本文中,我向您介绍了五个这样的组件,它们使您可以通过输入验证,输出转义,事件日志记录,垃圾邮件测试和漫游器筛选来强化Web应用程序。

这些组件共同构成了使您的应用程序更不容易受到攻击的第一道防线。 因此,进入,让我们开始吧。

设置基础应用程序

抵御恶意软件:全面解决当今最大的IT风险之一

本文研究了近年来恶意软件采用的不断变化的策略,解释了攻击过程中发生的典型事件序列,并描述了集成防御如何帮助使企业免受这些高级持续威胁的侵害。

下载“ 防御恶意软件” 。

在深入研究代码之前,需要注意一些注意事项和假设。

在本文中,我假设您已经熟悉Zend Framework 2.x进行应用程序开发的基本原理; 了解动作,控制器和视图之间的交互; 并且熟悉PHP 5.3中的名称空间实现。

我还假设您有一个正常的Apache / PHP开发环境,并且您的Apache Web服务器配置为支持虚拟主机和通过.htaccess文件进行URL重写。 如果您不熟悉这些主题,可以在本文的“ 相关主题”部分中找到指向更多信息的链接。

Zend框架是一个松耦合的框架,这意味着您可以独立使用它的组件,也可以在其MVC实现中使用它。 鉴于不同的项目有不同的需求,本文尝试演示两种方案的用法。 本文随附的下载档案中也提供了工作代码示例。

首先,设置一个标准的Zend Framework 2.x应用程序,该应用程序为本文中显示的代码提供上下文。 您可以通过下载并使用ZFTool模块来执行此操作,如下所示:

另一种方法是手动下载并将Zend Framework骨架应用程序的内容提取到系统上的目录中。 然后,使用Composer下载必要的依赖项。 Zend Framework文档提供了有关此方法的其他指导; 您可以在“ 相关主题”部分中找到此文档的链接。

现在,您应该在Apache配置中为此应用程序定义一个新的虚拟主机,例如 ,并将该虚拟主机的文档根指向框架应用程序的public /目录。 如果然后浏览到该主机,则应该看到默认的Zend Framework 2.x欢迎页面, 如图1所示。

图1. Zend Framework 2框架应用程序欢迎页面

使用Zend Framework 2提高Web应用程序的安全性

清单1设置了对象,该对象表示卖家在将列表添加到网站时可以使用的表单。 图2显示了此表单的呈现版本。 即使您不知道Zend Form的工作原理,也很容易将清单1中的对象映射到图2所示的标准表单元素。

图2.清单表单

上市表格

当用户提交列表时,检查提交的数据以确保其有效且不包含恶意代码很重要。 这是Zend Filter和Zend Validate组件进入的位置:

  • Zend Filter组件负责扫描输入以转义或删除非法字符串(HTML元素或文件系统路径),并对其进行转换以符合格式要求(去除空格和换行符或更改字符串大小写)。
  • Zend Validate组件可确保输入有效并匹配输入请求者的期望。 这可能包括检查电子邮件地址,主机名和URI的格式; 确保字符串具有一定的最小长度; 或验证数字和邮政编码的精度。

可以将各个过滤器和验证器链接在一起以测试特定的输入值,并且只有成功通过链中的所有验证器和过滤器后,该值才被视为有效。

Zend InputFilter组件提供了一种对过滤器和验证器进行分组的方法,从而使一次验证多个输入(例如,通过表单提交的多个输入)更简单。 清单2使用Zend InputFilter创建一个新的ListingFilter对象,该对象包含测试通过ListingForm提交的输入所需的所有过滤器和验证器。

清单2.表单输入验证器和过滤器

来源:cuyi7076

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月4日
下一篇 2020年6月4日

相关推荐