热门标签 | 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



推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
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社区 版权所有