热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ajax-关于thinkphp防止本地在提交时<form>中增加一个HASH值

为防止表单本地提交,thinkphp在每个form标签默认增加了一个32位的hash值,任何表单提交都要验证这个hash是否和服务器端的SESSION一致,但是,我如果采用的是Ajax怎么办?!该怎样防止用户本地提交恶意参数。另...
为防止表单本地提交,thinkphp在每个form标签默认增加了一个32位的hash值,任何表单提交都要验证这个hash是否和服务器端的SESSION一致,但是,我如果采用的是Ajax怎么办?!该怎样防止用户本地提交恶意参数。
另外,thinkphp这种方式在验证完hash和SESSION一致后,立即销毁SESSION并重新生成一个新SESSION和hash值,那这种方法是不是对于GET方式的请求再刷新一次就无效了,比如一个网站的站内搜索功能:以GET方式提交参数:http://www.example.com/search.php?query=最好看的电影&hash=jf75zg93s5su56si8d63hd8km01jf737ey,我再刷新一次,HASH值没变,但服务器SESSION已变,是不是就阻止了?求达人,不胜感激

回复内容:

为防止表单本地提交,thinkphp在每个form标签默认增加了一个32位的hash值,任何表单提交都要验证这个hash是否和服务器端的SESSION一致,但是,我如果采用的是Ajax怎么办?!该怎样防止用户本地提交恶意参数。
另外,thinkphp这种方式在验证完hash和SESSION一致后,立即销毁SESSION并重新生成一个新SESSION和hash值,那这种方法是不是对于GET方式的请求再刷新一次就无效了,比如一个网站的站内搜索功能:以GET方式提交参数:http://www.example.com/search.php?query=最好看的电影&hash=jf75zg93s5su56si8d63hd8km01jf737ey,我再刷新一次,HASH值没变,但服务器SESSION已变,是不是就阻止了?求达人,不胜感激

hash 应该是CSRF Token,只需要在ajax请求发送之前,即用绑定beforeSend事件处理,把token加到header里。

比如:

当使用ajax请求时,要在http头部设置’X-CSRF-Token’,值为服务端生成的token,比如

jquery中发ajax并设置’X-CSRF-Token’

$.ajax({
            type: "POST",
            url: _node.attr('href'),
            beforeSend: function(req) {
              req.setRequestHeader('X-CSRF-Token', "#{csrf_token}")
            },
//后边的省略
 });

推荐阅读
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • laravel怎么关闭csrf验证
    php框架|Laravellaravelphp框架-Laravel在线生成php源码,vscode怎么解除注释,ubuntu进入后,tomcat放在哪了,爬虫美图,php打包工具, ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • CSRF校验策略及装饰器和auth认证模块
    目录csrf跨站请求伪造csrf校验策略csrf相关装饰器auth认证模块auth认证相关模块及操作扩展auth_user表csrf跨站请求伪造钓鱼网站:模仿一个正规的网站让用户在 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • XMLhttpREquest_Ajax技术总结之XmlHttpRequest
    Ajax1、 什么是ajax   ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • 这座城市多了十只伤心的鸽
    这个作业属于哪个课程2021春软件工程实践|W班(福州大学)这个作业要求在哪里团队第四次作业这个作业的目标设计项目原型、制作项目需求规格说明书团队名称这座城市多了十只伤心的鸽其他参 ... [详细]
author-avatar
yuhao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有