0

我目前正在开发应用程序中的评论系统。这样控制器就知道widget评论与哪个相关(每页上有几个widgets)我正在通过$widget_id作为表单帖子的一部分。

然而,这很容易被 DOM 破解,允许用户向他们希望的任何小部件发表评论。用户 ID 更容易处理,因为它是会话的一部分。

有没有更安全的方法来实现同样的目标?在这种情况下可以使用闪存数据吗?我发现的所有解决方案都涉及通过隐藏字段传递 id,但这绝不是安全的。

4

2 回答 2

1

尽管通过默默无闻本身是一个坏主意,但理论上您可以加密表单数据并将其称为无害的东西:

<input type="hidden" name="theme_modifier" value="<?php echo $this->encrypt->encode('widget_name'); ?>">

至少这样,攻击者将更难猜测预期值应该是多少。尤其如此,因为 CI 使用 mcrypt,这意味着即使未加密的值相同,该值也会每次都发生变化。

于 2013-10-31T13:12:13.043 回答
0

有一种简单的方法可以做到这一点。不要将 id 传递给 html 中的隐藏字段。
只需将其保存在会话中。然后您可能需要加载与该用户相关的页面。
做控制器中的所有事情。然后加载应该允许用户使用的页面。
例如编辑页面。然后,当用户保存一些数据时,使用会话检查当前登录的
用户,并检查用户是否有权编辑,如果为真,则继续。

于 2013-10-31T12:11:05.117 回答