注意:下面的示例只是一个虚构的简化示例!
假设我在 Meteor.JS 应用程序中有两个按钮:一个表示同意,这会将某个元素的分数加 +1,另一个表示不同意,这会减去某个元素的分数。
如果我为此使用基于类的事件(因此一个同意,一个不同意),用户是否可以手动更改类并否决模板中设置的条件?
<button class="agreement tiny">
Agree!
</button>
如果用户单击此按钮,他可以删除他的协议(protocol):
<button class="remove-agreement tiny">
Remove agreement!
</button>
我的问题是用户是否可以手动将删除协议(protocol)按钮的类从remove-agreement
更改为agreement
,以便他可以添加多个+1。这可能吗?我自己尝试过,但似乎不起作用,但我(显然)不是这方面的专家。
编辑:它现在可以工作了。这是否意味着我需要为此实现服务器端安全性?
最佳答案
是的,用户可以删除该类。每当网站要求在 Facebook 上点赞时我都会这样做。删除 display:none
需要 10 秒。 10 秒的隐私时间对我来说没问题。
每次客户要求插入/更新/删除某些内容时,您都需要验证这一点。
这是一个明显的场景:您需要存储用户投票,每次用户尝试投票/反对投票时,您都会检查用户是否已经投票。如果由于某种原因,用户尝试投反对票或投赞成票超过 1 次,您可以记录此信息,分析并决定是否应该禁止该用户。
您可以使用allow/deny rules检查这个或什至simple server method 。不要忘记检查/阻止来自客户端的数据库 CRUD 操作,否则...你就完蛋了!
关于javascript - Meteor.JS 基于类的事件安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27162440/