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

Php 我是否需要对公共方法使用身份验证检查?,php,security,oop,methods,Php,Security,Oop,Methods,在面向对象的PHP应用程序中,我是否需要使用身份验证检查应用程序中几乎所有公共方法以确保安全 我担心这个漏洞: 即使我使用static关键字,人们怎么能调用我的公共方法? 此攻击成功的条件是什么 就像另一个漏洞一样——比如允许将PHP文件上传到我的系统?正如本文所述,如果您正确地构建应用程序,这不会是一个问题。这里的问题不是类具有公共方法还是私有方法,而是应用程序的路径不安全 应用程序的结构应确保它只提供一个入口点。对任何文件的任何请求都应该通过主文件路由。其他PHP文件都不应直接访问。当您以

在面向对象的PHP应用程序中,我是否需要使用
身份验证
检查应用程序中几乎所有
公共
方法以确保安全

我担心这个漏洞:

即使我使用
static
关键字,人们怎么能调用我的公共方法?


此攻击成功的条件是什么


就像另一个漏洞一样——比如允许将PHP文件上传到我的系统?

正如本文所述,如果您正确地构建应用程序,这不会是一个问题。这里的问题不是类具有公共方法还是私有方法,而是应用程序的路径不安全

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


看看这个模式:

如果不是建议使用前端控制器来实现解决方案,我会给出+1:p我会这样做,但我总是对其他人如何处理事情感兴趣。发布您的解决方案!:)在底层架构方面,我会采取类似的方法——一个php包含文件,用于检查身份验证(通常还处理会话管理和授权)——但作为执行入口点的包含文件,而不是作为路由器