POST表单重复提交问题求助:跨多IP多运营商随机触发
基础POST表单重复提交异常问题求助
问题背景
我开发了一个基础POST表单,功能是将用户输入的数据发送至指定邮箱,该表单已在多个站点部署,但异常情况极少出现。
异常表现
- 偶尔会出现完全相同的POST请求被多次发送的情况,导致重复邮件
- 表单为纯HTML基础款,未使用AJAX等技术提交
- 重复提交间隔极随机,通常相隔数天,客户反馈同一表单在3天内被提交了6次,可排除用户刷新页面导致的重复提交
已尝试的措施
首次发现问题后,我添加了session校验来防止重复提交,但问题未解决,推测多次提交之间session已被重置。
关键异常细节
- 最近的重复提交均来自iPhone,桌面浏览器从未复现该问题
- 多次请求的IP地址不同,且分属3家不同运营商
- 提交前存在多次GET请求,疑似页面被多次加载
IP与运营商信息
xx.xx.xx.xx1 = first IP, Network provider: DNA Oy xx.xxx.xxx.xx2 = second IP, Network provider: DNA Oy xx.xxx.xxx.xx3 = third IP, Network provider: Elisa Oyj xxx.xx.xxx.xx4 = fourth IP, Network provider: TeliaSonera Finland Oyj
实际域名已替换为 www.MYDOMAIN.fi
请求日志
xx.xx.xx.xx1 - - [17/May/2023:15:17:04 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8921 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xx.xx.xx1 - - [17/May/2023:17:09:49 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xx.xx.xx1 - - [18/May/2023:07:30:44 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8981 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xxx.xxx.xx2 - - [18/May/2023:17:36:56 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xxx.xxx.xx2 - - [18/May/2023:19:25:36 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xxx.xxx.xx3 - - [19/May/2023:21:38:01 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xxx.xxx.xx3 - - [19/May/2023:23:37:22 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xx.xxx.xxx.xx3 - - [20/May/2023:13:05:29 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1" xxx.xx.xxx.xx4 - - [21/May/2023:00:29:04 +0300] "POST /tyomatkustus-ryhmat/ HTTP/1.1" 200 8979 "https://www.MYDOMAIN.fi/tyomatkustus-ryhmat/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1"
疑问
有没有人遇到过类似问题?可能的原因是什么?有什么解决办法?
内容的提问来源于stack exchange,提问作者manttih
相关产品推荐
相关产品推荐

