gpt4 book ai didi

php - 如何防止在 5 分钟内多次提交表单?

转载 作者:可可西里 更新时间:2023-11-01 12:35:06 25 4
gpt4 key购买 nike

我最近发现我的 PM 系统存在一个巨大的安全问题,该问题允许用户使用地址栏中的 for 循环发送任意数量的消息。有人将其放入地址栏:

javascript:for(x=0;x<10000;x++){ $('#compose form').submit(); }

该消息已发送给我 1000 次,我的收件箱中充满了相同的消息,而且我的数据库已满,以至于 phpMyAdmin 变得非常迟钝。

我的问题是,我该如何防止这种情况发生?这是一个主要问题。

此外,表单是使用 AJAX 提交的。

编辑:

我使用 PHP,那么如何防止这种情况发生?就像我怎么能做到每 5 分钟左右只能发送一次消息,如果他们在 5 分钟内提交超过一条消息,它将显示错误(或者根本不显示任何用户反馈,只是停止提交) )?

最佳答案

有一种明显的方法可以修复它,问题不在客户端 - 它在服务器端

您的服务器脚本不应允许过于频繁地发送消息 - 例如。通常比说,每 10 分钟一次。为此,您可以在服务器端使用 session 机制,并在用户发送电子邮件时保存信息。如果用户没有发送电子邮件,您还应该将该信息保存在 session 中 - 以区分启用 session 的人和禁用 session 的人(并且您应该完全阻止后者发送电子邮件)。

session 的实现方式(具体代码)取决于您用于服务器端脚本的语言(PHP、Python、JSP 等)。

关于php - 如何防止在 5 分钟内多次提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8351470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com