ajax请求php省略后缀,如何在PHP中更安全地处理Ajax请求?
在谷歌搜索了很多次后,回答结束了!
步骤1:为所有Web服务生成令牌系统:
生成令牌:
session_start();
$token = md5(rand(1000,9999)); //you can use any encryption
$_SESSION['token'] = $token; //store it as session variable
?>
步骤2:发送Ajax调用时使用它:
var form_data = {
data: $("#data").val(), //your data being sent with ajax
token:'<?php echo $token; ?>', //used token here.
is_ajax: 1
};
$.ajax({
type: "POST",
url: 'yourajax_url_here',
data: form_data,
success: function(response)
{
//do further
}
});
步骤3:现在,让我们用
session_start(); //most of people forget this while copy pasting code ;)
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
//Request identified as ajax request
if(@isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']=="http://yourdomain/ajaxurl")
{
//HTTP_REFERER verification
if($_POST['token'] == $_SESSION['token']) {
//do your ajax task
//don't forget to use sql injection prevention here.
}
else {
header('Location: http://yourdomain.com');
}
}
else {
header('Location: http://yourdomain.com');
}
}
else {
header('Location: http://yourdomain.com');
}
注意:对不起,如果…否则嵌套,但它增加了可理解性。
如果不是这样的话,你可以把这三个简化为一个。85%的安全性增强!
ajax请求php省略后缀,如何在PHP中更安全地处理Ajax请求?相关推荐
- node 单元测试_如何在Node中模拟对单元测试的请求
node 单元测试 by Edo Rivai 由Edo Rivai 如何在Node中模拟对单元测试的请求 (How to mock requests for unit testing in Node) ...
- php和ajax实现聊天功能,怎么在PHP项目中使用jquery与ajax实现一个即时聊天功能
怎么在PHP项目中使用jquery与ajax实现一个即时聊天功能 发布时间:2020-12-19 16:19:01 来源:亿速云 阅读:81 作者:Leah 本篇文章给大家分享的是有关怎么在PHP项目 ...
- ajax请求时设置cookie,如何在JavaScript中使用AJAX请求设置Cookie值?
我们需要使用AJAX请求或以任何AJAX请求将这些cookie发送到服务器的方式来设置cookie. 这里要注意的一件事是,对任何远程服务器的每个AJAX请求都会自动将所有cookie发送到该服务器, ...
- java curl 使用方法_如何在Java中使用这个cURL POST请求?(Spotify API)
我需要帮助在Java中发出cURL POST请求(到spotifyapi).我把我的解决办法解释得太离谱了 this article . 基于此,我尝试了以下方法: String command = ...
- oracle 并发请求跟踪,在保留在oracle数据库中的同时处理并发请求?
小编典典 要在网站上处理并发,通常的做法是在每条记录上都有一列,以便您检查自获得以来是否未更新.上次更新日期或顺序版本号(由触发器自动递增). 通常,您将读取数据(加上并发列) SELECT seat ...
- 如何在 JavaScript 中更好地使用数组
本文短小精悍,我保证.在过去的数个月里,我注意到在我审阅的 pull request 中有四个(关于数组使用的)错误经常出现.同时,我自己也会犯这些错误,因此有了这篇文章.让我们一起学习,以确保以后能 ...
- javascript字典中添加数组_如何在 JavaScript 中更好地使用数组
在 freeCodeCamp 社区阅读原文. 本文短小精悍,我保证.在过去的数个月里,我注意到在我审阅的 pull request 中有四个(关于数组使用的)错误经常出现.同时,我自己也会犯这些错误, ...
- 在国内如何使用gmail_如何在Gmail中更快地键入电子邮件
在国内如何使用gmail Most of us always have a pile of emails we've procrastinated about answering. After all ...
- 如何在Solr中更好的处理同义词
当使用Solr来构建搜索引擎的时候,你可能经常会遇到这样的场景:你有一个同义词列表,并且你想用户查询也能够命中到同义词.听起来很简单不是吗?为什么搜索"dog"的时候,不能命中包含 ...
最新文章
- PHP生成PDF文档的FPDF类
- 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容...
- 致所有IT工程师的信(网络工程师的发展方向)
- 一文弄懂YOLO目标检测算法
- LeetCode Algorithm 589. N 叉树的前序遍历
- 前后端分离的思考与实践
- 前端学习(667):运算符优先级
- java数组 arraylist_JAVA 用数组实现 ArrayList
- 南开调整研究生奖助,博士生最高超10万,硕士生6万,可能已经超过他们毕业后能拿的工资!...
- 漫画:程序员战力图鉴
- 记录一下alibaba cloud boot 版本对应关系
- 1-9:学习shell之权限
- lambda 对象初始化器 集合初始化器
- MVP Open Day小记
- oracle sqlplus help,oracle: 安装sqlplus help帮助命令
- linux 系统信号忽略和system函数返回值问题(system的实现)
- ssm高仿bilibili视频网站
- Go避免使用大堆造成的高GC开销
- 计算机学术论文shortessay,实用的Academic Essay写作技巧汇总
- outlook 签名 设置
热门文章
- 英语笔记:写作:Nothing succeeds without a strong will
- Fiddler利用Xposed框架+JustTrustMe抓取手机APP数据
- 搭建nginx+php后访问不到项目
- cmd窗口使用python提示“Python not found”,可能是环境变量配置的原因
- mysql磁盘无法挂载,linux – 无法挂载磁盘(VFS:找不到ext4文件系统)
- php 上次登陆时间,php使用cookie显示用户上次访问网站日期的方法
- python读取url中存储的数据_python 给定URL 如何获取其内容,并将其保存至HTML文档。...
- java中的成员变量和局部变量的区别_java中成员变量与局部变量区别分析
- php如何设计自定义模型,php – Kohana ORM模型中的自定义方法
- Win11如何调整任务栏大小 Win11调整任务栏大小的方法