不知道是不是一个很白的问题,如题,用户通过程序模拟 form 提交,变换用户名,ip 不变。 兄弟们有招么?
验证码是做什么的?
#1 楼 @jimrokliu 需求是普通登录不显示验证码的,发现是恶意用户才显示。
先定义一个恶意用户的范围,然后通过特征值来屏蔽恶意用户。
http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf 看完会有一些启示
难道可以通过用户名攻击你的网站?服务是区分不出来真是用户和模拟用户的,验证码都可以被 OCR 进行分析。浏览器的工具可以修改任何表单的数据再提交,所以按照正确的安全策略做你的网站。
如果是模拟 form 提交,可以考虑给 form 增加一个 token,post 方法里面进行验证。
有点疑惑,刷注册还能想象,刷登陆有啥意义?莫非每登陆一次还加分不成?
用数学题什么的
#7 楼 @leonkaiyu 嗯,稍微提高了一下攻击门槛
#8 楼 @nightire 恶意攻击的
你可以考虑限定每小时登录次数。