诡异的 "密码取回" 邮件问题
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
大部分系统中都有“找回密码”的功能,我们的平台也做了此功能,用户可通过 短信,邮件 找回密码。
其中对于邮件找回密码的方式遇到奇特的问题,记录下,看谁有遇到过,一起解决。
【现象】
当用户在界面点击“忘记密码”时,需要输入自己的登录的用户名,系统将按照之前预留的邮箱发送一封带有链接的邮件。用户点击该链接后即可修改密码,而且该地址是一次有效。在测试环境测试(不能链接公网)测试时,没有问题,但是以上到正式环境(内外联通)后,发现部分用户点击收到的链接时出现“找回密码链接已失效!”。
用户非常肯定的是自己重来没有点击过这个链接,但是第一次点击链接都失效了?奇怪的问题。
用户收到的邮件通知

链接被使用过一次后,再点击时出现的情况(部分用户没有点击也出现此种情况)

【重现】
在环境中重新注册个用户 test-xjd 发送邮件,正常的是 sina 邮箱没有此问题,163、qq 邮箱都存在同样的问题。
检查前置机的访问记录,发现该邮件被发出去后,大约半分钟左右就会被访问,导致后续真正的用户访问时链接失效了。

WHY? TELL ME WHY ?
【解决方法】
1、使用前置机将该类访问禁止掉。过滤条件 Mozilla/4.0 。
2、修改链接为短链接,同时链接里面有很多敏感信息泄露。需要整体处理掉。
【后续】
根据访问日志,提取出访问的IP列表如下,如果谁知道这些IP时谁的,或是哪个单位的,请告知一下。
101.226.102.97
101.226.33.200
101.226.33.202
101.226.33.220
101.226.33.223
101.226.33.227
101.226.33.228
101.226.33.238
101.226.51.226
101.226.51.228
101.226.65.104
101.226.66.173
101.226.66.180
101.226.66.187
101.226.66.192
101.226.89.116
101.226.89.119
101.226.89.123
101.226.89.64
101.226.89.69
112.64.235.247
112.64.235.253
112.64.235.254
112.64.235.86
112.64.235.91
180.153.114.199
180.153.114.200
180.153.163.187
180.153.163.209
180.153.201.212
180.153.201.66
180.153.205.253
180.153.205.254
180.153.206.16
180.153.206.17
180.153.206.21
180.153.206.23
180.153.206.31
180.153.206.38
180.153.214.178
180.153.214.180
180.153.214.181
180.153.214.182
180.153.214.188
180.153.214.190
180.153.214.191
222.73.77.54
222.73.77.55
WHO CAN TELL ME WHY? TELL ME WHY ?
诡异的 "密码取回" 邮件问题的更多相关文章
- SSH项目里面 忘记密码的邮件发送功能
package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...
- svn自动发用户名密码到邮件(明文密码)
#!/bin/sh touch testlist cat /dev/null > testlist grep "=" passwd |grep -v "#" ...
- javaWeb实现使用邮箱邮件找回密码功能
JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...
- Linux中Postfix邮件认证配置(五)
Postfix+Dovecot+Sasl工作原理 1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户 ...
- 应用层之E-mail服务及javaMail邮件发送的知识总结
关于Email服务你需要知道的知识点: 概述: 今天来介绍一下应用层的电子邮件服务,我们每天几乎都在用,电子邮件(email)服务也是一种基于C/S模式的服务,它采用的是一种"存储-转发&q ...
- 在Django中进行注册用户的邮件确认
之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...
- (进阶篇)PHP+Mysql+jQuery找回密码
通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...
- jboss eap 6.2+ 版本中 加密datasource密码等敏感信息
默认情况下,在jboss eap 6.2+ 管理控制台创建datasource后,会在standalone.xml(独立模式)或host.xml(域模式)中以明文保存相关敏感信息. 这会给服务器留下安 ...
- redmine 配置邮件发送为async后,不能发送邮件(转载)
通过参考:http://www.oschina.net/question/2005703_16688 之前configuration.yaml文件中email的相关配置如下: production: ...
随机推荐
- Lodash使用示例(比较全)
<html> <head> <meta name="viewport" content="width=device-width" ...
- redis线程安全性
总体来说快速的原因如下: 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事 ...
- BZOJ 4241: 历史研究——莫队 二叉堆
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4241 题意:N个int范围内的数,M次询问一个区间最大的(数字*出现次数)(加权众数),可以 ...
- .net设置浏览器的文本模式
这段时间做个项目,做的时候因为之前习惯了Google的调试方式,所以就一直在google上面调试,今天项目成员大家的部分要整合,就放到ie8下面测试,但是遇到一个问题,就是用ie打开之后文本模式一直是 ...
- vue 文件引入
直接 <script> 引入 直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量.重要提示:在开发时请用开发版本,遇到常见错误它会给出友好的警告. 开发环 ...
- python初学-列表
列表操作: 列表一般需要先调用方法后才能打印,不能直接打印调用的方法 因为列表可以修改 一般不会返回一个新列表 # 列表 # new_names = ['lzc','lzc2','lzc3'] # 下 ...
- 几个例子理解对称加密与非对称加密、公钥与私钥、签名与验签、数字证书、HTTPS加密方式
# 原创,转载请留言联系 为什么会出现这么多加密啊,公钥私钥啊,签名啊这些东西呢?说到底还是保证双方通信的安全性与完整性.例如小明发一封表白邮件给小红,他总不希望给别人看见吧.而各种各样的技术就是为了 ...
- POJ-2398
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4243 Accepted: 2517 Descr ...
- [PAT] 1141 PAT Ranking of Institutions(25 分)
After each PAT, the PAT Center will announce the ranking of institutions based on their students' pe ...
- 简写代码:当变量为false时['',false,null,undefined,0,NaN]时,返回默认值
当变量为'',false,null,undefined,0,NaN时,返回默认值 var a='' a || 'hello world' "hello world" var a ...