Home > Backend Development > PHP Tutorial > 如何判断一个字符串是随机生成的而不是手写的?

如何判断一个字符串是随机生成的而不是手写的?

WBOY
Release: 2016-06-06 20:49:46
Original
2103 people have browsed it

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

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

求解。

回复内容:

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

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

求解。

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

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

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

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

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

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

强制手机验证吧

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

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

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

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

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

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

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template