php – 如何防止在5分钟内多次提交表单?
发布时间:2020-12-13 13:21:15 所属栏目:PHP教程 来源:网络整理
导读:我最近发现我的PM系统存在一个巨大的安全问题,它允许用户在地址栏中使用for循环发送消息.有人把它放到地址栏中: javascript:for(x=0;x10000;x++){ $('#compose form').submit(); } 并且消息被发送了1000次给我,我的收件箱中充满了相同的消息,我的数据库非常
我最近发现我的PM系统存在一个巨大的安全问题,它允许用户在地址栏中使用for循环发送消息.有人把它放到地址栏中:
javascript:for(x=0;x<10000;x++){ $('#compose form').submit(); } 并且消息被发送了1000次给我,我的收件箱中充满了相同的消息,我的数据库非常充实,phpMyAdmin非常迟钝. 我的问题是,我该如何防止这种情况?这是一个重大问题. 此外,表单是使用AJAX提交的. 编辑: 我使用PHP,所以如何防止这种情况?就像我怎样才能将消息发送到每5分钟左右发送一次的消息,如果他们在5分钟内提交了多个消息,它将显示错误(或者根本不显示任何用户反馈,只是阻止它被提交)?
有一种明显的方法可以解决它,问题不在于客户端 – 它位于服务器端.
您的服务器脚本不应允许过于频繁地发送消息 – 例如.通常比每10分钟一次.为此,您可以在服务器端使用会话机制,并在用户发送电子邮件时保存信息.如果用户尚未发送电子邮件,您还应该在会话中保存该信息 – 以区分启用了会话的人员和禁用会话的人员(并且您应该阻止后者发送电子邮件). 会话的实现方式(具体代码)取决于您用于服务器端脚本的语言(PHP,Python,JSP等). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |