防止模板静态访问业务类
我有一个(某种)框架,它具有表示逻辑和逻辑。业务逻辑。
我的问题是业务逻辑静态调用方法,因此不需要该类的实例。其中一个类称为 Config,它保存(一些)危险信息(例如数据库连接信息)。那么如何阻止表示逻辑执行此操作:
var_dump(Config::get('database'));
I have a framework (of sorts) that has Presentation logic & Business logic.
My problem is that the Business logic calls methods statically, therefore, no instance of the class is needed. One of these classes is called Config that holds (some) dangerous info (like DB connection info). So how do I stop the presentation logic from doing this:
var_dump(Config::get('database'));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的模板能够执行任意 PHP 代码,那么您却不能。
除非您有一个模板引擎,其中模板完全“沙箱化”,否则您不能允许不受信任的用户编辑模板。
但是,对于数据库连接信息,您可以在使用这些变量后简单地取消设置它们。但这并不能阻止某人在他的模板中编写 PHP 代码,该代码会再次读取配置文件......
If your templates have the ability to execute arbitraty PHP code you cannot.
Unless you have a template engine where templates are fully "sandboxed" you cannot allow untrusted users to edit templates.
However, for database connection information, you could simply unset those variables after they've been used. Doesn't stop someone from writing PHP code in his template which reads the config file again though ...