0

我对我的应用程序有疑问或担忧。经验告诉我,留下任何可能的方式来维护我的代码是非常非常糟糕的。所以现在,我有一个添加用户意见的表格。它有

  • 一个文本字段textarea
  • 一个 user_id 字段input type="hidden"
  • game_id 字段 input type="hidden"

现在我担心的是,用户可能想查看代码并找到这些字段。许多浏览器允许操作 HTML(我们可以从 Chrome 更改类等)。所以换成value="1"value="2"他们来说不是问题。

我的问题是 - Symfony2 中避免此类问题和风险的最佳实践是什么?

4

1 回答 1

1

您可以在控制器中获取它们,而不是从表单中获取用户和游戏 ID,控制器无论如何都会处理帖子并在那里处理这两个值。

$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
$gameId = $user->getGame()->getId();

是获取当前所需值的一种可能方式(当然取决于您的游戏 id 来自哪里)

编辑:

如果用户与多个游戏相关联,您可以像最初一样交出 gameId 并通过依赖注入将其直接投射到游戏类:

public function exampleAction(Game $gameId) {
    $user = $this->get('security.context')->getToken()->getUser();

    if($user->getGames()->contains($gameId) {
     return true;
    }
}
于 2013-01-28T14:31:35.053 回答