【问题标题】:Which is more secure? A function in a helper or in a controller哪个更安全?助手或控制器中的函数
【发布时间】:2014-03-10 05:21:25
【问题描述】:

我正在使用 codeigniter 创建一个应用程序。人们可以注册并登录应用程序。用户也可以查看彼此的个人资料。

我注意到我正在使用诸如从用户 id 获取用户名、从用户 id 获取电子邮件等功能......相当多。我注意到所有这些函数的共同点是它们都提供了一个用户 ID 作为其参数。所有这些功能都在控制器中。

我想把所有这些函数放在一个帮助文件中。因为从帮助文件中调用函数很容易。由于我经常使用这些函数,如果它们来自帮助文件,我可以直接在视图中使用它们。

现在我的问题是,从安全的角度来看,将这些功能放在帮助程序而不是控制器中是否安全?由于这些函数直接访问数据库以从用户表中获取关键信息。

我知道这个问题可能被视为非常基于意见。但与此同时,我正在努力得到它是否安全的确切答案。

【问题讨论】:

  • 它们同样安全/不安全。这是您的代码,您负责处理数据的方式。是否在可通过视图/控制器访问的帮助程序中与安全性无关。

标签: php codeigniter codeigniter-2


【解决方案1】:

从“安全”的角度来看,它们都在您的代码中,最终用户不可见。但从测试的角度来看,访问数据库的代码最好与接触其他组件(如 UI)(通常在控制器中)的代码隔离开来进行测试。这种事情通常会进入 MVC 模式中的模型或模型助手中。

【讨论】:

  • 我认为这些功能应该真正存在于模型中。正如您所指出的,与访问数据库相关的任何内容都应该在模型中。而且我认为这些功能在站点中经常使用,所以我首先将它放在帮助程序中。 ——好吧,我完全错了。因为按照 MVC 的原则,这些与数据库提取相关的功能应该真正在模型中。感谢您提醒我。
猜你喜欢
  • 2016-03-31
  • 2016-07-23
  • 2023-03-02
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2016-02-13
  • 2014-10-31
相关资源
最近更新 更多