发现IM Key硬钱包的奇妙世界 朋友们,你们有听说过IM Key硬钱包吗?最近我无意间发现这个硬钱包居然是开源的,真是...
可能你有过这样的经历:填写了一大堆信息,点了提交,却因为网速慢或者其他原因,没反应。于是你又点了一次,搞得后台数据重复,真是让人头疼呀!这就是表单重复提交的问题。
说白了,就是因为用户不确定之前的提交是否成功。在网络不稳定或者用户心急的情况下,就极容易导致这种情况。还有一些恶意用户,可能故意重复提交,企图搞乱数据,甚至进行攻击。这种时候,我们就需要找到一个好的解决方案。
在遇到这种表单重复提交的情况时,Token机制简直是救星。简单来说,Token就是一种随机生成的字符串,它会和你的表单一起发送,在服务器上进行验证。这样即使用户多次点击提交,后台只会处理第一个有效的请求,其他的都会被忽略。
实现Token机制其实并不复杂,下面我就来给大家拆解一下。
每次用户打开表单页面时,后台会为这个用户生成一个唯一的Token。你可以用一些随机数生成算法来实现,比如PHP的`bin2hex(random_bytes(16))`,或者用Java的UUID。
这个Token需要存储在服务器上,可以放在会话(Session)或者是数据库里。这样在用户提交表单的时候,服务器可以通过比对来判断这个Token是否有效。
生成的Token需要被放到表单里面,通常是以隐藏字段的方式传递。像这样: