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

做苗木的哪个网站效果好推广哪个app最挣钱

做苗木的哪个网站效果好,推广哪个app最挣钱,常州有哪些做阿里巴巴网站的,电商网站首页图片概要 在 Web 应用的开发过程中,确保数据传输的安全性和完整性是一个不容忽视的问题。使用 HMAC(Hash-based Message Authentication Code)算法对请求内容进行签名校验,是一种常见且有效的安全策略。本文将详细介绍如何在 Django …


概要

在 Web 应用的开发过程中,确保数据传输的安全性和完整性是一个不容忽视的问题。使用 HMAC(Hash-based Message Authentication Code)算法对请求内容进行签名校验,是一种常见且有效的安全策略。本文将详细介绍如何在 Django 后端实现 HMAC 签名校验,并展示如何在前端 Vue.js 应用中生成对应的签名,从而确保前后端通信的安全性。


1. Django 后端实现

步骤 1: 安装所需库

在 Django 项目中,我们首先确保安装了 hmac 和 hashlib,这些通常是 Python 标准库的一部分。

步骤 2: 创建签名生成函数

在 Django 应用中,创建一个函数来生成基于 HMAC 的签名。

import hmac
import hashlibdef generate_hmac_signature(method, accept, content_type, path, body, secret_key):msg = f"{method}{accept}{content_type}{path}{body}"return hmac.new(secret_key.encode(), msg.encode(), hashlib.sha256).hexdigest()

步骤 3: 创建中间件进行签名校验

创建一个 Django 中间件来验证传入请求的签名。

# middleware.py
from django.http import JsonResponseclass HmacAuthenticationMiddleware:def __init__(self, get_response):self.get_response = get_responsedef __call__(self, request):secret_key = 'your-secret-key'request_signature = request.headers.get('X-HMAC-Signature')# 构建签名字符串method = request.methodaccept = request.headers.get('Accept', '')content_type = request.headers.get('Content-Type', '')path = request.pathbody = request.body.decode()expected_signature = generate_hmac_signature(method, accept, content_type, path, body, secret_key)if not hmac.compare_digest(expected_signature, request_signature):return JsonResponse({'error': 'Invalid signature'}, status=403)return self.get_response(request)

步骤 4: 注册中间件

在 Django 的 settings.py 中注册这个中间件。

# settings.pyMIDDLEWARE = [# ...'path.to.HmacAuthenticationMiddleware',# ...
]

2. 前端实现(Vue.js)

步骤 1: 安装 Crypto-js

在 Vue.js 项目中,安装 crypto-js 来生成 HMAC 签名。

npm install crypto-js

步骤 2: 在 Axios 请求中添加签名

在 Vue.js 应用中,创建一个 Axios 请求拦截器,为每个请求添加 HMAC 签名。

// http.js
import axios from 'axios';
import CryptoJS from 'crypto-js';const secretKey = 'your-secret-key';axios.interceptors.request.use(config => {const { method, headers, url, data } = config;const accept = headers['Accept'] || '';const contentType = headers['Content-Type'] || '';const path = url; // 假设 url 是完整路径const body = JSON.stringify(data || {});// 生成签名const msg = `${method.toUpperCase()}${accept}${contentType}${path}${body}`;const signature = CryptoJS.HmacSHA256(msg, secretKey).toString();config.headers['X-HMAC-Signature'] = signature;return config;
}, error => {return Promise.reject(error);
});export default axios;

在 Vue 组件中,使用这个配置的 Axios 实例发送请求。

3. 安全考虑

  • 密钥保密:确保前后端使用相同的密钥,并且密钥在前端不被暴露。最好的做法是将密钥保存在环境变量中。

  • 防止重放攻击:可以在签名中包含一个时间戳和/或一个随机数,并在服务端验证这个时间戳的有效性。

4. 测试和调试

  • 测试确保前后端签名生成一致。

  • 使用 Postman 或类似工具测试 API 请求,确保中间件正确校验签名。

总结

通过在 Django 后端实现 HMAC 签名校验的中间件,并在 Vue.js 前端生成相应的签名,可以大大增强应用的安全性。这种机制确保了数据在传输过程中的完整性和身份的验证。正确实施这些措施需要确保前后端的协调一致,并妥善处理安全相关的细节。

640?wx_fmt=gif&wxfrom=5&wx_lazy=1&wx_co=1

http://www.dtddedu.com/news/222.html

相关文章:

  • 哔哩哔哩网站电子商务建设上海宝山网站制作
  • 网站建设程序编制想做seo哪里有培训的
  • 天津哪家公司做企业网站武汉seo网站优化技巧
  • 怎么去接网站来做seo公司
  • 网站项目的介绍郑州高端网站建设哪家好
  • 做任务拍照片赚钱的网站可以放友情链接的网站
  • 做代购起家的奢侈品特卖网站品牌营销策略
  • 建设网站的法律声明深圳抖音推广
  • 如何做120急救网站百度荤seo公司
  • 马云将来淘汰的十个行业网站建设淄博seo培训
  • 网站怎么做任务赚钱营销策划品牌策划
  • github中文官网入口长沙谷歌seo
  • 建设银行 网站首页seo网站关键词排名软件
  • 保险网站有哪些今日头条郑州头条新闻
  • 网站内容的设计与实现考研培训班集训营
  • 上海品牌型网站建设靠谱怎么做自媒体
  • 巴中网站制作公司网站推广工具有哪些
  • 长沙做网站的公司有哪些有域名有服务器怎么做网站
  • 网站怎么做优化步骤建站软件
  • 招代理河北网站seo策划
  • 做a视频网站百度推广管理平台登录
  • 单位网站建设如何做好平台推广
  • 网站建设实验报告模板百度95099怎么转人工
  • 有什么网站可以做3d河南疫情最新消息
  • 做网站公司官网阿里云搜索引擎网址
  • 新手有关网站建设需要看哪些书软件开发定制
  • 网站建设合同按什么交印花税免费个人网站建站
  • 湖南手机网站建设一个产品的宣传和推广方案
  • 橙子建站广告怎么做郑州seo软件
  • 广州网站建设信科便宜搜索引擎技巧