dpoxk64080 2016-05-28 09:04
浏览 25
已采纳

too long

I'm using PHP Codeigniter to build a web application.

In my controller, I call a model (say the "user" object) which has several properties and methods. Some of these properties contain sensitive data like hashed passwords, etc.

I need this object in the view, but I don't want to pass along the sensitive properties to the view.

I can think of one way to do this - which is to unset each sensitive property individually before passing the entire object to the view, but this seems too long and verbose (as seen in the code below):

unset($this->user->hashed_pwd);
unset($this->user->security_question);
...(and so on)

Does anybody know of a shorter / simpler way to sanitize such an object for the view? Or is there a better practice for doing this?

  • 写回答

2条回答 默认 最新

  • dqr91899 2016-05-28 09:12
    关注

    The view does not know about these other properties unless you refer to them (in server code) they are not sent to the view (client code). If you are so concerned, you could simply build a new object with a method that only transfers elements that are flagged safe. Use a naming scheme to differentiate elements that can be sent to the view, to make the code less verbose.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入