Php Codeigniter控制器:使用私有功能发布还是不使用公共功能发布?

Php Codeigniter控制器:使用私有功能发布还是不使用公共功能发布?,php,codeigniter,frameworks,Php,Codeigniter,Frameworks,考虑到安全性,最好(对于codeigniter应用程序): 有一个控制器,用于检查POST输入,然后委托给私有函数 或 拥有一个具有一系列公共功能的控制器 我在这里考虑的是,如果我们允许用户查看URL,他们可以再次使用该URL来执行一些操作。但是如果我们坚持投递授权的方法,并不是每个人都能够定制自己的投递信息,并尝试玩这个系统 但这真的是一个意义重大的问题吗??对于这类问题是否有最佳实践 注意:我在应用程序上也使用了很多AJAX 这只是我个人的观点,但我同意你的第一个选择,使用带有私人功能的PO

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

  • 有一个控制器,用于检查POST输入,然后委托给私有函数
  • 拥有一个具有一系列公共功能的控制器
  • 我在这里考虑的是,如果我们允许用户查看URL,他们可以再次使用该URL来执行一些操作。但是如果我们坚持投递授权的方法,并不是每个人都能够定制自己的投递信息,并尝试玩这个系统

    但这真的是一个意义重大的问题吗??对于这类问题是否有最佳实践


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

    这只是我个人的观点,但我同意你的第一个选择,使用带有私人功能的POST

    我喜欢把我的控制器锁起来,它们是独立的和私有的,事实上是在控制中!他们可以实例化其他“服务”类(例如模型和视图),调用模型中的公共方法,然后将数据推送到视图公共变量中

    在我看来是这样的:

    • 控制器类是独立的(可能扩展了一个公共基类,但静态方法也可以轻松实现),它们有私有方法
    • 模型类在很大程度上也是独立的,但当然,它们具有检索和处理数据的公共函数
    • 视图类是获取公共方法以将数据呈现到页面等的地方

    关于AJAX也有一个想法:我使用自定义处理程序类作为所有AJAX请求的控制器和抽象层。通过这种方式,您可以对AJAX访问和数据保持更严格的安全性


    hth

    My 2p:Enable CSRF protection(在CI 2.0.3中存在)应该在某种程度上满足您关于将“任何旧数据”发布到控制器的安全考虑

    (最后)