既然你不考虑效果好的验证方式,你就直接ip验证+浏览器本地存储(写特定cookie、或localStorage)也无可厚非。
不是不考虑好的 是把这些排外后的 还能否有更合理的机制.
@YangChengHu: 你排出的,就是被各大公司实践过的,非常合理的方式。然后我也提供了一个不大严密的机制,当然,如果对方不分析代码,也算是比较严密了。
@幻天芒: 指的是ip验证+浏览器本地存储吗?
@YangChengHu: 对的。切换ip需要时间,而且可以对国外的ip进行限制(比如强制失败一次),本地存储的话,如果不清理那么切换ip也没用,同时也可以多用几种方式来使用本地存储。如果更复杂一点,你可以在IE上用ActiveX,chrome上有对应的插件,获取硬件信息,这样就能限制得死死的(但是是以牺牲体验为代价的)
验证码啊,邮箱验证啊
验证码 邮箱验证码都除外的情况下
@YangChengHu: 你只开放第三方登录,不做注册功能
每次请求时生成一个token,提交时验证token。
ASP.NET MVC有现成的解决方法——ValidateAntiForgeryToken,参考:强化网站安全性:避免跨网站脚本攻击(XSS)
这个可以减少软件直接提交
@dudu: 如果我不用form,使用ajax该怎么使用token啊?
@dudu:十分感谢
这个位置的场景 假设就只有html+ashx+ajax提交数据的方式,除了token外 还有没有其他方式,IP MAC之类的组合在一起来判断,甚至根据数据库中的数据与当前请求进行计算判断~
@YangChengHu: IP最好结合User Agent进行判断,MAC地址是拿不到的
@dudu: 纠结的地方就在于,怎么限制通过抓包后都可以通过程序恶意注册,但是目前就是需要一个防止的机制,不知道怎么处理。。
@YangChengHu: 加验证码。
你是如何界定“恶意用户注册”的?