php - 如何判断一个字符串是随机生成的而不是手写的?
黄舟
黄舟 2017-04-10 14:28:53
[PHP讨论组]

最近在处理一个问题的时候发现,有不少用户使用了发贴机或注册机来进行恶意注册。 这些用户混淆在正常用户中间,cookie,ip均为伪造,没有更好的特征。

经过观察,发现这些用户名一般都是随机生成,长度近似,但不知道是否有什么好的算法来识别一个字符串是否是随机生成的?

求解。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(9)
天蓬老师

你要解决的问题是:「如何防止恶意注册?」

1、无法判断一个字符串是否为随机。因为现在随机只是一个物理概念,而无法用数学的语言来定义。

2、防止恶意注册用的最多的办法就是验证码

PHP中文网

是啊别去考虑怎么验证是否随机了,基于既有算法作判断的话人家换一个算法不同的注册机你就判断不了了……

还是想想如何在注册时增加必须手工操作无法AI代替的步骤吧……

怪我咯

為何ip可以偽造?! server判斷是不是要改一下

ringa_lee

强制手机验证吧

天蓬老师

你需要做人机识别,考虑以下几个方向吧:

  1. 验证码
  2. Tokens ( cookie )
  3. 建立强大的语料库匹配你希望获得的输入?

但实际可能操作和效果最好的都是第一个。

PHP中文网

注册时加个验证码
需要验证邮箱才能发言
基本上可以拦截大部分注册机...
不需要考虑是否随机,也没有考虑的必要

高洛峰

手机短信验证,同一手机号不能重复注册 —— 这是釜底抽薪的方法。

随机生成一个串,我抄写一遍,怎么能有牛算法可以分辨出来,随机算法也不是没有生成有意义字串的可能性,所以你的问题本身是无解的。

PHP中文网

1、我就叫j3c1ob2又怎样那些做安全的名字都诡异的要死。
2、为什么不用更唯一的方式验证例如手机号注册呀,微信注册呀
3、现在注册机好多,通过采集注册机略过的网站整理出来一个库,为人类做贡献。。

PHPz

记得当年批量注册游戏账号,名字是从百度贴吧里面采集回来的,单从名字上,是无法防御的吧。看看现在主流的防御方法有什么吧,比如验证码、手机验证、访问频率等等。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号