我是否需要对公共方法使用身份验证检查?

时间:2011-06-30 06:48:55

标签: php security oop methods

在面向对象的PHP应用程序中,我是否需要使用authentication检查我的应用程序中的几乎每个public方法的安全性?

我担心此漏洞:CWE-306: Missing Authentication for Critical Function

即使我使用static关键字,任何人都可以调用我的公开方法吗?


此攻击成功的要求是什么?

像其他漏洞一样 - 比如允许将PHP文件上传到我的系统?

1 个答案:

答案 0 :(得分:2)

正如文章所述,如果您正确构建应用程序,这将不会成为问题。您的类是否具有公共或私有方法不是问题,问题是您的应用程序的路径不安全。

您的应用程序的结构应使其仅提供单一入口点。对任何文件的任何请求都应通过主文件进行路由。您的其他PHP文件都不能直接访问。当您以这种方式构建它时,您可以轻松应用身份验证,因为您可以检查到应用程序的每个请求,并确定哪些需要进行身份验证以及哪些可以公开提供。

看一下这种模式:http://en.wikipedia.org/wiki/Front_Controller_pattern