当前位置:  开发笔记 > 编程语言 > 正文

如何防止用户在网站上多次发布数据

如何解决《如何防止用户在网站上多次发布数据》经验,为你挑选了2个好方法。

我正在开发一个Web应用程序(J2EE),我想知道可以从浏览器处理双重帖子的选项.

我过去看过和使用过的解决方案都是客户端的:

用户单击它后立即禁用提交按钮.

按照POST-Redirect-GET模式阻止用户单击后退按钮时的POST.

处理表单的onSubmit事件并使用JavaScript跟踪提交状态.

如果可能的话,我更愿意实现服务器端解决方案.有没有比我上面提到的更好的方法,或者客户端解决方案最好?



1> Joe Skora..:

很难实施一个愚蠢的解决方案(因为他们总是改善白痴). 无论您做什么,客户端都可能被操纵或执行不正确.

您的解决方案必须是服务器端才能可靠和安全. 也就是说,一种方法是检查请求并检查系统/数据库状态或日志以确定它是否已被处理.理想情况下,如果可能的话,服务器端的进程应该是幂等的,并且如果不能,则必须防止欺骗提交.



2> zigdon..:

你可以提供一个"票证"作为表格的一部分,一些随机数 - 并确保它不会被接受两次,在服务器端.


您无法阻止用户使用相同的故障单重新提交新请求,但您可以在服务器端拒绝该请求,并显示"重复请求"错误.
当然,如果它是一个合法的模式,你可以添加对它的支持 - 在服务器端,找到他们以前的请求(使用相同的票证),并根据需要更新信息.当然,这是你的愿意,你愿意接受对表格的更改.
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有