我正在写一些内容,允许您发布一些长篇内容,例如不需要注册的博客帖子。我想检测帖子是否重复。要明确的是,它不一定是完美的,只是抓住明显的欺骗,如垃圾邮件发送者或前端代码失败的错误,用户发送两个请求来创建帖子或其他东西。
我最初的想法是删除特殊字符,空白和一些常见的单词,如和,但是等等,然后md5它。然后,我可以在DB中存储“duplicate_hash”或其他内容。
然后当你去发布它会在数据库上查询该唯一的哈希值。如果找到哈希,则会出现重复错误。
这会非常好用还是有更好的想法?我们正在使用Node和MySQL,如果碰巧有任何特定的工具,我已经找不到了。
答案 0 :(得分:1)
如果您的目标是阻止有人点击刷新或返回按钮提交双重提交,那么这些消息将完全相同,以便简单匹配。
如果您的目标是防止发送垃圾邮件,那么邮件的md5哈希值可能是特定的,因为只需更改字符就会产生不同的哈希值。
如果你想坚持md5哈希,你可以只散列一大块消息,比如从100个字符到500个字符。或者小写一切,删除像你说的常用词,选择前25或50个单词然后哈希那个。