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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
之前总结过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/

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
159
分享
相关文章
【YashanDB知识库】数据库获取时间和服务器时间不一致
【YashanDB知识库】数据库获取时间和服务器时间不一致
阿里云服务器安全攻略参考:基础防护与云安全产品简介
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题,阿里云服务器除了提供基础的防护之外,我们也可以选择其他的云安全类产品来确保我们云服务器的安全。本文为您介绍阿里云服务器的基础安全防护机制,以及阿里云提供的各类云安全产品,帮助用户全面了解并选择合适的防护手段,为云上业务保驾护航。
安全体检 | 服务器的终极卫士
阿里云的安全体检是为用户提供的一项免费安全检测工具,旨在通过调用云安全中心和配置审计中的安全检测能力,汇总检测结果,涵盖病毒攻击、风险配置和服务器漏洞三方面。该服务帮助用户及时发现并解决潜在的安全问题,提升云上安全水平。与云服务诊断不同,安全体检更侧重于深层次的安全检测,确保服务器的安全稳定运行。
安全体检 | 服务器的终极卫士
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
215 0
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
85 25
阿里云服务器购买后设置密码、安全组、基础安全服务、挂载云盘等流程简介
对于初次选购阿里云服务器的用户来说,通过阿里云推出的各类活动买到心仪的云服务器仅仅是第一步。为了确保云服务器能够正常运行并承载您的应用,购买之后还需要给云服务器设置远程登录密码、设置安全组规则、设置基础安全、购买并挂载云盘等操作之后,我们才能使用并部署自己的应用到云服务器上。本文将详细介绍在阿里云的活动中购买云服务器后,您必须完成的几个关键步骤,助您快速上手并充分利用云服务器的强大功能。
服务器的使用安全如何保障
德迅卫士主机安全软件,采用自适应安全架构,有效解决传统专注防御手段的被动处境,精准捕捉每一个安全隐患,为您的主机筑起坚不可摧的安全防线
阿里云国际站注册教程:阿里云服务器安全设置
阿里云国际站注册教程:阿里云服务器安全设置 在云计算领域,阿里云是一个备受推崇的品牌,因其强大的技术支持和优质的服务而受到众多用户的青睐。本文将为您介绍阿里云国际站的注册过程,并重点讲解如何进行阿里云服务器的安全设置。
端到端的ECS可观测性方案,助力云上业务安全稳定
本文介绍了云原生时代保障业务系统可靠性的方法和挑战,重点探讨了阿里云ECS在提升业务稳定性、性能监控及自动化恢复方面的能力。文章分为以下几个部分:首先,阐述了业务可靠性的三个阶段(事前预防、事中处理、事后跟进);其次,分析了云上业务系统面临的困难与挑战,并提出了通过更实时的监测和自动化工具有效规避风险;接着,详细描述了ECS实例稳定性和性能问题的解决方案;然后,介绍了即将发布的ECS Lens产品,它将全面提升云上业务的洞察能力和异常感知能力;最后,通过具体案例展示了如何利用OS自动重启和公网带宽自适应调节等功能确保业务连续性。总结部分强调了ECS致力于增强性能和稳定性的目标。
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
81 5

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等