在面向对象的PHP应用程序中,我是否需要使用authentication
检查我的应用程序中的几乎每个public
方法的安全性?
我担心此漏洞:CWE-306: Missing Authentication for Critical Function
即使我使用static
关键字,任何人都可以调用我的公开方法吗?
此攻击成功的要求是什么?
像其他漏洞一样 - 比如允许将PHP文件上传到我的系统?
答案 0 :(得分:2)
正如文章所述,如果您正确构建应用程序,这将不会成为问题。您的类是否具有公共或私有方法不是问题,问题是您的应用程序的路径不安全。
您的应用程序的结构应使其仅提供单一入口点。对任何文件的任何请求都应通过主文件进行路由。您的其他PHP文件都不能直接访问。当您以这种方式构建它时,您可以轻松应用身份验证,因为您可以检查到应用程序的每个请求,并确定哪些需要进行身份验证以及哪些可以公开提供。
看一下这种模式:http://en.wikipedia.org/wiki/Front_Controller_pattern