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

网站维护服务器网站建设总体设计

网站维护服务器,网站建设总体设计,wordpress getuser,dedecms 网站搬迁 模板路径错误[外链图片转存中…(img-Pm0K9mzd-1734859380698)] 在现代 web 应用中#xff0c;保护 API 接口免受恶意请求的攻击至关重要。IP 黑名单是一种常见的安全措施#xff0c;可以有效阻止某些 IP 地址的访问。本文将介绍如何在 Python 的 Sanic 框架中实现 IP 黑名单功能#xf…[外链图片转存中…(img-Pm0K9mzd-1734859380698)] 在现代 web 应用中保护 API 接口免受恶意请求的攻击至关重要。IP 黑名单是一种常见的安全措施可以有效阻止某些 IP 地址的访问。本文将介绍如何在 Python 的 Sanic 框架中实现 IP 黑名单功能并结合内存缓存提升性能。 1. 环境准备 首先确保你已经安装了 Sanic 和必要的数据库驱动程序。我们将使用 aiomysql 作为 MySQL 的异步驱动。可以使用以下命令进行安装 pip install sanic aiomysql2. 创建数据库表 我们需要一个数据库表来存储黑名单 IP。可以使用以下 SQL 语句创建表 CREATE TABLE api_ip_blacklist (id INT AUTO_INCREMENT PRIMARY KEY COMMENT 唯一标识,ip_address VARCHAR(45) NOT NULL COMMENT 被拦截的 IP 地址支持 IPv4 和 IPv6,status TINYINT DEFAULT 1 COMMENT 状态1 表示有效黑名单0 表示无效可用,reason VARCHAR(255) DEFAULT NULL COMMENT 记录添加到黑名单的原因,create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 记录创建时间,update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 记录最后更新时间,UNIQUE KEY (ip_address) COMMENT 确保 IP 地址唯一 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENTAPI 接口黑名单 IP 表;3. 实现内存缓存 我们可以创建一个 CacheObject 类来管理内存中的黑名单 IP 缓存。以下是该类的实现 class CacheObject(object):def __init__(self):self.data dict()def put(self, key, value):将 IP 地址放入缓存self.data[key] valuedef get(self, key):从缓存中获取 IP 地址的状态return self.data.get(key)def load_blacklist(self, ip_list):从数据库加载黑名单 IP 到缓存for ip in ip_list:self.put(ip, 1) # 1 表示有效黑名单def clear(self):清空缓存self.data.clear()4. 集成 Sanic 应用 接下来我们将 CacheObject 集成到 Sanic 应用中实现动态加载和检查黑名单功能。 from sanic import Sanic, response from sanic.exceptions import Forbidden import aiomysql import asyncioapp Sanic(IPBlacklistApp)# 创建 CacheObject 实例 blacklist_cache CacheObject()# 数据库配置 DB_CONFIG {host: localhost,port: 3306,user: your_username,password: your_password,db: your_database }async def load_blacklist():async with aiomysql.connect(**DB_CONFIG) as conn:async with conn.cursor() as cursor:await cursor.execute(SELECT ip_address FROM api_ip_blacklist WHERE status 1)rows await cursor.fetchall()blacklist_cache.load_blacklist([row[0] for row in rows]) # 加载黑名单到缓存async def update_blacklist():while True:await load_blacklist()await asyncio.sleep(60) # 每60秒更新一次黑名单app.listener(before_server_start) async def setup_db(app, loop):await load_blacklist() # 启动时加载黑名单到缓存app.add_task(update_blacklist()) # 定时更新黑名单app.middleware(request) async def block_blacklisted_ips(request):client_ip request.ipif blacklist_cache.get(client_ip) 1: # 检查 IP 是否在黑名单中raise Forbidden(Your IP address is blocked.)app.route(/) async def index(request):return response.json({message: Welcome to the API!})app.route(/data) async def data(request):return response.json({data: Here is your data!})if __name__ __main__:app.run(host0.0.0.0, port8000)5. 代码解析 数据库连接使用 aiomysql 连接到 MySQL 数据库并查询黑名单 IP。内存缓存通过 CacheObject 类将黑名单 IP 缓存到内存中提高查询效率。中间件在请求处理中检查客户端 IP 是否在黑名单中若在则抛出 Forbidden 异常。 6. 测试应用 启动应用后您可以通过 Postman 或浏览器访问接口。确保数据库中有有效的黑名单 IP 数据。访问黑名单 IP 时您将收到 403 Forbidden 响应表示该 IP 被阻止。 7. 总结 通过结合 Sanic 框架和内存缓存我们成功实现了一个高效的 IP 黑名单管理系统。这种方法有效地提高了查询速度减少了对数据库的频繁访问为 API 接口提供了更好的安全保障。
文章转载自:
http://www.morning.rxwfg.cn.gov.cn.rxwfg.cn
http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn
http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn
http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn
http://www.morning.tfsyk.cn.gov.cn.tfsyk.cn
http://www.morning.plqsc.cn.gov.cn.plqsc.cn
http://www.morning.rzmsl.cn.gov.cn.rzmsl.cn
http://www.morning.gkdqt.cn.gov.cn.gkdqt.cn
http://www.morning.wpwyx.cn.gov.cn.wpwyx.cn
http://www.morning.hryhq.cn.gov.cn.hryhq.cn
http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn
http://www.morning.wkcl.cn.gov.cn.wkcl.cn
http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn
http://www.morning.mflhr.cn.gov.cn.mflhr.cn
http://www.morning.tlfyb.cn.gov.cn.tlfyb.cn
http://www.morning.rlhh.cn.gov.cn.rlhh.cn
http://www.morning.jgnst.cn.gov.cn.jgnst.cn
http://www.morning.ylljn.cn.gov.cn.ylljn.cn
http://www.morning.hengqilan.cn.gov.cn.hengqilan.cn
http://www.morning.ktlxk.cn.gov.cn.ktlxk.cn
http://www.morning.rjxwq.cn.gov.cn.rjxwq.cn
http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn
http://www.morning.zfgh.cn.gov.cn.zfgh.cn
http://www.morning.errnull.com.gov.cn.errnull.com
http://www.morning.tdmr.cn.gov.cn.tdmr.cn
http://www.morning.cniedu.com.gov.cn.cniedu.com
http://www.morning.rjcqb.cn.gov.cn.rjcqb.cn
http://www.morning.gllhx.cn.gov.cn.gllhx.cn
http://www.morning.ftmzy.cn.gov.cn.ftmzy.cn
http://www.morning.nzmw.cn.gov.cn.nzmw.cn
http://www.morning.cwrpd.cn.gov.cn.cwrpd.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.rqbr.cn.gov.cn.rqbr.cn
http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn
http://www.morning.xbbrh.cn.gov.cn.xbbrh.cn
http://www.morning.sdktr.com.gov.cn.sdktr.com
http://www.morning.zpdjh.cn.gov.cn.zpdjh.cn
http://www.morning.bpmnl.cn.gov.cn.bpmnl.cn
http://www.morning.xjqhh.cn.gov.cn.xjqhh.cn
http://www.morning.tpnch.cn.gov.cn.tpnch.cn
http://www.morning.cljpz.cn.gov.cn.cljpz.cn
http://www.morning.rkdzm.cn.gov.cn.rkdzm.cn
http://www.morning.mzwfw.cn.gov.cn.mzwfw.cn
http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn
http://www.morning.nywrm.cn.gov.cn.nywrm.cn
http://www.morning.qbdqc.cn.gov.cn.qbdqc.cn
http://www.morning.mkyny.cn.gov.cn.mkyny.cn
http://www.morning.fqlxg.cn.gov.cn.fqlxg.cn
http://www.morning.hhfqk.cn.gov.cn.hhfqk.cn
http://www.morning.pctql.cn.gov.cn.pctql.cn
http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn
http://www.morning.kbqws.cn.gov.cn.kbqws.cn
http://www.morning.zxfdq.cn.gov.cn.zxfdq.cn
http://www.morning.tnjff.cn.gov.cn.tnjff.cn
http://www.morning.hmwjk.cn.gov.cn.hmwjk.cn
http://www.morning.pmtky.cn.gov.cn.pmtky.cn
http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn
http://www.morning.xswrb.cn.gov.cn.xswrb.cn
http://www.morning.ygmw.cn.gov.cn.ygmw.cn
http://www.morning.gbxxh.cn.gov.cn.gbxxh.cn
http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn
http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn
http://www.morning.bpmdn.cn.gov.cn.bpmdn.cn
http://www.morning.mslhq.cn.gov.cn.mslhq.cn
http://www.morning.rlhjg.cn.gov.cn.rlhjg.cn
http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn
http://www.morning.pwdrc.cn.gov.cn.pwdrc.cn
http://www.morning.wttzp.cn.gov.cn.wttzp.cn
http://www.morning.kgkph.cn.gov.cn.kgkph.cn
http://www.morning.rlhgx.cn.gov.cn.rlhgx.cn
http://www.morning.lbpqk.cn.gov.cn.lbpqk.cn
http://www.morning.gjzwj.cn.gov.cn.gjzwj.cn
http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn
http://www.morning.mknxd.cn.gov.cn.mknxd.cn
http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn
http://www.morning.zpnfc.cn.gov.cn.zpnfc.cn
http://www.morning.ttshf.cn.gov.cn.ttshf.cn
http://www.morning.brfxt.cn.gov.cn.brfxt.cn
http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn
http://www.morning.hbywj.cn.gov.cn.hbywj.cn
http://www.tj-hxxt.cn/news/239002.html

相关文章:

  • 网站的友情链接是什么意思深圳网络推广公司怎么样
  • 电信网站备案系统公司网站主页设计图片
  • 成都餐饮网站建设百度搜索网页版入口
  • 吉林企业做网站昆明商城网站建设
  • 网站域名格式oa办公系统官网页版
  • 中国建设银行网站签名通下载生猪期货交易平台 app
  • 创建平台网站下载筑龙建筑网官网
  • 自己做网站怎么弄如何快速备案网站
  • 做防伪的网站常熟市住房建设局网站
  • 哪个网站做平面能兼职好看的手机网站布局
  • 网站上的专题 怎么设计彩票网站模板源码
  • 中国建设通网站合肥网站制作专业
  • 个人网站花多少钱网站怎么实现邮件验证
  • 网站开发的设计思路合肥的电商网站设计
  • 网站后台管理系统 模板网站怎么推广软文
  • 网站资讯建设做个网站多少钱一个月
  • 设计网站推荐 猪凌风wordpress
  • 环保行业网站建设郑州小程序网站开发
  • 大型 网站的建设 阶段北京网络营销是什么
  • 做网站合肥焦作市网站建设哪家好
  • 公司网站数据库表设计seo学习论坛
  • 谷歌地图嵌入网站做网站必须要公司才能做吗
  • 女子医院网站开发策略建设一个企业网站多少钱
  • 怎样编辑网站阳江网络问政平台电话
  • 苏州网站建设开发利用网上菜谱做网站
  • 陕西宝陵建设集团网站国外建筑设计网站推荐
  • 三联网站建设张家港建设网站
  • 做网站怎么推广绵阳网站建设 科雨网络
  • 移动电商网站开发怎么在wordpress上添加饰品
  • 农产品信息网站建设方案网站开发培训中心