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

Mysql监控慢日志,防止恶意用户注入

为什么80%的码农都做不了架构师?#!usrbinpythonimportreuserlist[abc192.168.1.1,cba192.168.1.1]

为什么80%的码农都做不了架构师?>>>   hot3.png

#!/usr/bin/python
import re
userlist=['abc@192.168.1.1','cba@192.168.1.1']
table=['table1','table2']
SEEK_FILE = '/tmp/seek.txt'
MYSQL_LOG='/root/var/log/mysql/mysql_log.txt_2013-07-03_00'
try:                                                    # check seek filef_seek = open(SEEK_FILE, 'r')n = long(f_seek.read())
except IOError:f_seek = open(SEEK_FILE, 'w')f_seek.write('0')n = 0
finally:f_seek.close()
f = open(MYSQL_LOG,'r')
f.seek(n)
logcheck=open('/tmp/logcheck.txt','a')                  # open logfie which record the illogical operation
while True:seek_1=f.tell() # return seek from tell()line=f.readline()if "backup_@localhost" in line:key=re.findall(r'\d{8}',line)[0]while True:line=f.readline()if re.findall(r'\d{8}',line)==[]:continueelse:key1=re.findall(r'\d{8}',line)[0]if key==key1 and "Quit" not in line:continueelif "Connect" in line:user=re.findall(r'\S+@\S+',line)[0]if user not in userlist:print '%s connect database' %userlogcheck.write(line.strip()+'\n')elif "show create" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')elif "show grants" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')elif "desc table" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')elif "use mysql" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')elif "select *" in line:sql_str=re.search(r'from(.*)where',line)tablename=sql_str.group().split()[1]keyword=sql_str.group().split()[-1]if tablename not in table or keyword is None:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')elif key==key1  and "Quit" in line:breakif "select *" in line:sql_str=re.search(r'from(.*)where',line)tablename=sql_str.group().split()[1]keyword=sql_str.group().split()[-1]if tablename not in table or keyword is None:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')if "show create" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')if "show grants" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')if "desc table" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')if "use mysql" in line:print 'illogical operation %s' %line.strip()logcheck.write(line.strip()+'\n')if "Connect" in line:user=re.findall(r'\S+@\S+',line)[0]if user not in userlist:print '%s connect database' %userlogcheck.write(line.strip()+'\n')seek_2=f.tell()                                 # end readline,return seek from tell()if seek_1==seek_2:f_seek=open(SEEK_FILE,'w')f_seek.write(str(seek_2))f_seek.close()logcheck.close()break




转:https://my.oschina.net/jastme/blog/278538



推荐阅读
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
author-avatar
陈家碧玉3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有