是否存在与Java URL过滤器/拦截器等效的PHP?

时间:2008-12-28 01:06:51

标签: php security

我喜欢Java servlet的一个方面是使用不显眼的过滤器和拦截器。基本上,您可以使用这些东西来强制执行安全性,在HttpRequest上添加额外信息,进行监控等等。

PHP中有一些等价物吗?

从我到目前为止看来,您似乎倾向于在所有页面中包含某个文件,这些文件将执行诸如启动会话,强制执行安全性等操作。不那么优雅。这是唯一的解决方案吗?

2 个答案:

答案 0 :(得分:5)

PHP没有提供任何servlet API等效,所以快速回答是你需要自己实现逻辑。

你有很多关于如何实现这一点的肘部空间。实践是在应用程序中创建一个特定的控制流,方法是从一个文件开始,通过该文件初始化所有请求,初始化一些值,例如常量,文件路径等,然后开始解析请求并生成请求的内容。

显然,设置一些主文件并解析请求非常快。在过去,我们有“一个.php文件来统治他们所有”的做法。您通常只有一个包含页眉,页脚的文件,并且根据一些传入的GET或POST参数,您还会包含一些可生成或显示内容的其他页面。你可以很容易地理解事情会变得多么糟糕!

我的建议是,在你开始尝试自己开发之前,先尝试一些现有的框架,然后尽快开始提高工作效率。我认为PHP不是您的主要专业知识,并且您正在购买一个框架,您可以快速启动并运行,并快速掌握它的完整范围。其中两个,CodeIgniterCakePHP,作为PHP的框架,因为WordPress是博客 - 功能,简单和有效。

如果框架不符合您的喜好,您一定要阅读The no-framework PHP MVC framework

答案 1 :(得分:2)

不过,可能是近距离通话。

有一个配置指令来指示php自动包含你的文件

auto_prepend_file  string   

这对写一些类似的东西很有用。

你应该仔细阅读自php 5.2(最新版本)以来嵌入的过滤器库 http://it.php.net/manual/en/filter.configuration.php。我已经没用过了,但看起来很有趣。

顺便提一下,框架提示是一个有价值的提示。 虽然我不喜欢它们(通常我会打架而不是我指定的问题)。