数据库与服务器安全选项拾遗

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:
之前总结过sql注入的一些特征。这里总结一下 数据库的内部特征。和安全选项。
   MySQL
  权限划分
  mysql用户的权限,大体来说比较简单,分别存储于这几个表中
mysql.User,mysql.db,mysql.Host,mysql.table_priv,mysql.column_priv
  因为存取频繁,所以这几个表的数据存在内存中,更新数据后使用,语句来进行内存更新
  当然执行这个命令需要reload权限
FLUSH PRIVILEGES
  用户登录时需检查,mysql.user中的user host pass 三个字段,如果允许任何主机外部链接可以吧host设置成%
  用户登录通过后,mysql会自上而下的检查用户权限,首先在mysql.user中读取对应用户的权限。
  其中关于用户权限的字段大概有这些,除去一些常规的不表,比较重要的是
  file_priv 这个影响到了mysql读写文件的利用
  grant_priv 的用户可以吧自己拥有的权限付给其他用户
  process_priv 的用户可以通过SHOW PROCESSLIST查询所用用户的查询进程并kill,普通用户只可以查询自己的
  super_priv的用户允许改变set变量,修改用户查询
Select_priv
Insert_priv
Update_priv
Delete_priv
Create_priv
Drop_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Grant_priv
References_priv
Index_priv
Alter_priv
Show_db_priv
Super_priv
Create_tmp_table_priv
Lock_tables_priv
Execute_priv
Repl_slave_priv
Repl_client_priv
Create_view_priv
Show_view_priv
Create_routine_priv
Alter_routine_priv
Create_user_priv
 另外 super file 等管理权限后面不能加数据库,只能以这种形式授权
  grant super on *.* to xxx@xxxxx;
  而select等增删改查的权限,可以指定数据库来添加
  grant select on pyt.* to ‘p1′@’localhost’;
  其中最低的权限是usage权限,相当于只有一个连接的权限。使用create user 建立的用户,默认为usage权限
  但是此权限貌似有information_schema表的select权限,其中host为允许连接的主机名
  CREATE USER 'username'@'host' IDENTIFIED BY 'password'
  查询一个用户的权限只需要
  CREATE USER 'username'@'host' IDENTIFIED BY 'password'
   安全选项
  mysql启动的时候,也有一些安全选项,可以起到提高mysql安全性的功能
  具体可以看官方文档
  http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_allow-suspicious-udfs
  死四个安全选项
  http://database.51cto.com/art/201005/199939.htm
  提高安全设置
  http://www.mianwww.com/html/2009/02/2926.html
  六个安全选项
  http://news.zdnet.com.cn/zdnetnews/2008/0124/718026.shtml
  关于安全的文档
  http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
  PHP
   安全选项
  Safe Mode
  这个选项也是php常用的安全选项,开启他之后服务器会对文件读写,执行文件,改变php环境变量,文件包含等功能进行比较严格的限制。
   文件读写
  开启SafeMode之后,如果进行读写文件操作PHP检查当前用户是否是文件所有者,如果php被分配到一个比较低权限的账户,读写文件会比较困难。
  以下这些函数会受到影响
  chdir , move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink
  运行文件执行系统命令
  在执行系统命令的时候,只有safe_mode_exec_dir这个文件夹下的程序可以被执行。执行的指令会发送给escapeshellcmd进行过滤。
  受影响的函数
  exec, shell_exec, passthru, system, popen
  另外,重音符也会被禁止。
  环境变量
  改变环境变量的函数也会被禁止
  putenv,set_time_limit, set_include_path
  如果想设置安全模式下可以改变的环境变量,需要这样safe_mode_allowed_env_vars
  文件包含
  文件包含的话同样也是需要safe_mode_include_dir来设定目录
  expose_php
  这个安全选项,会防止response包中泄露PHP版本信息,比如包头信息中通常会包含
  Server: Apache/1.3.33 (Unix) PHP/5.0.3 mod_ssl/2.8.16
  OpenSSL/0.9.7c
  但如果expose_php开启的话,PHP的版本信息将不包含在上面的头信息里。
  AddType application/x-httpd
  有的时候你可能会觉得php的后缀不过瘾,那么可以在httpd.conf 中找到 AddTYpe这行,添加可供解析的后缀名。
  AddType application/x-httpd .html .htm .txt .asp
  这种方法也可以用来留后门。
  open_basedir
  这个选项可以规定用户只可以访问规定目录内的文件,这个选项并不和safe mode冲突
  disable_functions
  这个选项可以用来禁用一些函数
  disable_functions = eval
  当然,同样的你能够使用 disable_classes 选项来关闭对一些类的访问。
  magic_quotes_gpc
  大家常说的加引号的选项。
  display_errors
  大家常说的显错,如果被关闭的话,那就只能盲注啦~。也可以通过log_errors设置输出到文件。


最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
8月前
|
监控 安全 Ubuntu
从零开始学安全:服务器被入侵后的自救指南
在信息爆炸时代,服务器安全至关重要。本文针对黑客入侵问题,从应急处理、系统恢复到安全加固全面解析。发现入侵时应冷静隔离服务器,保存日志证据,深入排查痕迹;随后通过重装系统、恢复数据、更改密码完成清理;最后加强防火墙、更新软件、部署检测系统等措施防止二次入侵。服务器安全是一场持久战,需时刻警惕、不断优化防护策略。
1139 1
|
5月前
|
Java 关系型数据库 数据库
怎么保障数据库在凭据变更过程中的安全与稳定?
本文介绍了在Spring应用中实现RDS数据源账密运行时轮转的方案,通过集成KMS与Nacos,实现数据库凭据的加密托管、动态更新与无缝切换,保障应用在凭据变更过程中的安全与稳定。适用于使用Java语言开发的Spring Boot或Spring Cloud应用,支持多种数据库类型,如MySQL、SQL Server、PostgreSQL等。
|
5月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
5月前
|
安全 关系型数据库 MySQL
MySQL安全最佳实践:保护你的数据库
本文深入探讨了MySQL数据库的安全防护体系,涵盖认证安全、访问控制、网络安全、数据加密、审计监控、备份恢复、操作系统安全、应急响应等多个方面。通过具体配置示例,为企业提供了一套全面的安全实践方案,帮助强化数据库安全,防止数据泄露和未授权访问,保障企业数据资产安全。
|
7月前
|
SQL 人工智能 安全
深度复盘MCP安全风暴:一个工单如何演变成数据库“特洛伊木马”危机?
近期,安全公司 General Analysis 披露的MCP安全漏洞在技术圈引发了巨大震动。这个"特洛伊木马"式的安全漏洞暴露了一个现实:AI时代,传统的数据库访问方式已经无法满足安全需求。阿里云数据管理DMS新推出的DMS MCP Server,正是为AI时代的数据库安全访问而生,它不仅完美解决了传统MCP的安全隐患,更为企业提供了一个安全、智能、高效的数据访问新范式。
575 5
|
7月前
|
人工智能 安全 算法
长擎安全操作系统:构筑企业级服务器安全的坚固基石
长擎安全操作系统,以自主可控内核为基础,构建七层纵深防御体系,全面支持国密算法与可信计算,适配能源、金融、制造等关键行业,为企业服务器提供全方位安全保障,助力数字化转型安全发展。
|
7月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
1576 0
|
7月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。