Codeigniter控制器:带私有功能的POST或带公共功能的无POST?

时间:2011-08-31 13:18:36

标签: php codeigniter frameworks

考虑到安全性(对于codeigniter应用程序)最好:

  1. 让控制器检查POST输入,然后委托私有函数。
  2. OR

    1. 拥有一系列公共功能的控制器。
    2. 我在这里考虑的是,如果我们允许用户查看URL,他们可以再次使用该URL来执行某些操作。但是如果我们坚持使用POST委派方法,并不是每个人都能够自定义他们自己的POST信息并尝试对系统进行游戏。

      但这真的是一个重要的问题吗?是否有针对此类问题的最佳做法?

      注意:我在应用程序上也使用了很多AJAX。

2 个答案:

答案 0 :(得分:0)

仅仅是我的个人意见,但我会选择第一个选项,使用带私人功能的POST。

我喜欢让控制器锁定,它们是独立且私密的,实际上是 control !他们可以实例化其他“服务”类(例如模型和视图),调用模型中的公共方法,然后数据推送到Views public vars。

在我看来,就是这样:

  • 控制器类是独立的(可能扩展了一个公共基类,但使用静态方法可以很容易地实现),它们有私有方法!
  • 模型类在很大程度上也是独立的,但当然还有公共函数来检索和处理数据!
  • 查看类是您获取公共方法以将数据呈现到页面等的地方。


只是想一想你的AJAX:我使用自定义处理程序类作为所有AJAX请求的控制器和抽象层。这样,您可以保持对AJAX访问和数据的更严格的安全性!

HTH

答案 1 :(得分:0)

我的2p:启用CSRF保护(CI 2.0.3中存在)应该采取某种方式来满足您将“任何旧数据”发布到控制器的安全性考虑。

http://codeigniter.com/user_guide/libraries/security.html(最后)。