【发布时间】:2022-12-03 17:50:37
【问题描述】:
我正在创建一个 Twitter/Reddit 风格的网站。我一直在想什么是通过按下回复按钮安全地发送评论数据的详细信息的最佳方法,在 JS 中抓取它并将其发送回我的数据库
如果有 100 个 cmets 和 100 个回复按钮,我可以将评论 ID 存储在按钮的值字段中还是这太开放了?我的感觉是,即使用户知道他们回复的评论的 ID 值,任何试图用垃圾邮件滥用系统的人都会通过服务器端检测自动受到限制或禁止。
请注意,在服务器端,用户已经有一个会话,因此垃圾邮件应该很明显……对吗?
我看到了使用 type="hidden" 的选项,例如: 但似乎无论如何都可以用一点 jquery 来解决这个问题。想法?
谢谢。
【问题讨论】:
-
请访问help center,带上tour看什么和How to Ask。做一些研究,搜索有关 SO 的相关主题;如果您遇到困难,请发布您尝试的minimal reproducible example,注明输入和预期输出,最好是Stacksnippet
-
一个简单但非常重要的经验法则:“永远不要依赖客户端/用户提供的数据!”.客户端的所有数据都可以以一种或另一种方式进行操作。无论您多么努力地隐藏、隐藏、混淆甚至加密数据,如果是客户端,就可能有人会弄乱它。客户端的“安全性”应该被用来让访问者的生活更轻松。就像错误输入的错误。所有或您真正的安全必须在服务器端完成!
-
至于防止垃圾邮件,有几种方法可以做到这一点,但这完全取决于您如何创建论坛。最简单的方法是在服务器上添加一个名为
lastPostTime的会话变量或任何对您来说足够清楚的变量。在用户发帖后将其更新为当前时间。然后检查上次发布和新发布之间的时间以确定用户是否在发送垃圾邮件是一件简单的事情。如果时差小于 5 秒或 10 秒,您可以屏蔽该帖子。
标签: javascript php html security