当前位置: 首页 > news >正文

后端应该对前端数据来源渠道进行验证

后端进行数据的操作时,往往要根据前端提交过来的数据和命令进行不同的操作,必须要判断来源渠道。
1、来源渠道有几种
get,post,put,delete等,最常见的是get和post

get是明文传递,post会进行一定的加密。get一般是用来查询数据的,post提交数据。

2、验证来源

1)后台如果仅仅是显示数据,倒无所谓,本来你用get传递数据,有人如果用post伪造一个访问,结果差不多。

2)后台如果是修改或者删除数据,必须进行来源限制

3、几种办法

1)路由

$router->get('/users', 'UserController@index');    // 只允许GET
$router->post('/users', 'UserController@store');   // 只允许POST
$router->put('/users/{id}', 'UserController@update'); // 只允许PUT

2)中间件

abstract class Controller
{protected $request;/*** 验证HTTP方法*/protected function validateMethod($allowedMethods){if (!in_array($this->request->getMethod(), (array)$allowedMethods)) {http_response_code(405);echo json_encode(['code' => 405,'msg' => 'Method Not Allowed','allowed_methods' => (array)$allowedMethods]);exit;}}
}// 在子类中使用
class UserController extends Controller
{public function index(){$this->validateMethod('GET'); // 只允许GET// 正常业务逻辑return json_encode(['data' => []]);}public function store(){$this->validateMethod(['POST', 'PUT']); // 允许多个方法// 正常业务逻辑}
}

3)if判断

if($this->request->isAjax()){
// 正常业务逻辑
}

  

http://www.hskmm.com/?act=detail&tid=14329

相关文章:

  • 思念比爱更深刻
  • 数据库操作的方法签名
  • 完整教程:第33章 AI在教育领域的应用
  • 易软通openWMS - 功能齐全的开源WMS
  • C# 中的 ReferenceEquals 方法 - 教程
  • 遇到一件循环导入事件
  • flask实现后端接口的封装和开发部分
  • 上海这样的地段简直是逆天
  • 【GitHub每日速递 250923】 Google 又放大招!TimesFM 2.5 参数减半,预测更准更快
  • 具身智能机器人架构:人形机器人系统架构深度拆解
  • 卓驭,欧洲无绝境
  • 下周审核4家IPO,2家再融资。其中两家IPO企业于在审期间调减募资规模
  • 280亿国产AI独角兽,惹怒“地表最强法务部”
  • 读人形机器人20财富再分配
  • Java 与人工智能的深度融合:从数据到推理服务
  • Java 与大数据实时处理:Kafka、Flink 与企业应用
  • Java 与企业级中间件:消息、缓存与数据库集成
  • 基于 Vite7 与 Vue3 的 WebOS 后台系统架构实践
  • 啊哈哈20250923_03:23
  • js获取浏览器指纹
  • gitIgnore 无法忽略dist目录的变更
  • 翻转二叉树
  • 我的第一篇博客
  • 测试测试测试测试测试
  • java中的浮点数计算
  • XYCTF2025复现(WEB)
  • 洛谷 P13973 [VKOSHP 2024] Nightmare Sum
  • 发布/订阅(Publish/Subscribe)与交换机(Exchange)
  • 线性结构之链表
  • 二叉树最近公共祖先