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

Win2000ApachePHPMySQL安装及安全手册_MySQL

所需要的程序:apachewww.apache.orgdisthttpdbinarieswin32我们选用apache_1.3.28-win32-x86-no_src.msi,或者apache_2.0.47-win32-x86-no_ssl.msi都可以,勿使用低版本的程序,它们有缺陷,很容易遭到internet上的攻击phpcn2.php.netgetp
Apache手册mysql安装


  所需要的程序:
  
  apache
  http://www.apache.org/dist/httpd/binaries/win32/
  我们选用apache_1.3.28-win32-x86-no_src.msi,或者apache_2.0.47-win32-x86-no_ssl.msi
  都可以,勿使用低版本的程序,它们有缺陷,很容易遭到internet上的攻击
  
  php
  http://cn2.php.net/get/php-4.3.3-Win32.zip/from/a/mirror
  php-4.3.3
  
  mysql
  http://www.mysql.com/get/Downloa ... 5-win.zip/from/pick
  mysql-4.0.15
  注:低于这个版本的mysql,有缺陷,勿使用
  
  ZendOptimizer-2[1].1.0a-Windows-i386.exe
  php的优化器,支持加密php脚本
  
  MySQL-Front
  一个运行于ms平台的gui的mysql的管理器,非常好用
  
  phpMyAdmin-2.5.0-php.zip
  基于php脚本的mysql管理器
  
  phpencode.exe
  php加密编译器
  
  install~
  1.安装apache
  由于安装很简单,pass~!,只是要注意的是,请勿安装到系统分区上
  因为这样,无论从备份,维护,灾难性恢复上,都是有优势的.
  假设安装到了d:\2.安装php
  具体安装过程请参考php目录里的install.txt
  需要注意的是,请勿使用cgi方式
  以下为引用资料
  ------------------------------------------------------------------
  Title 17/2/2002
  PHP for Windows Arbitrary Files Execution (GIF, MP3)
  Summary
  Through PHP.EXE, an attacker can cause PHP to interpret any file as a PHP file,
  even if its extensions are not PHP. This would enable the remote attacker to
  execute arbitrary commands, leading to a system compromise.
  Details
  Vulnerable systems:
  PHP version 4.1.1 under Windows
  PHP version 4.0.4 under Windows
  An attacker can upload innocent looking files (with mp3, txt or gif extensions)
  through any uploading systems such as WebExplorer (or any other PHP program that
  has uploading capabilities), and then request PHP to execute it.
  Example:
  After uploading a file a \"gif\" extension (in our example huh.gif) that contains
  PHP code such as:
  #------------
    phpinfo();
  ?>
  #------------
  An attacker can type the following address to get in to cause the PHP file to be
  executed:
  http://www.example.com/php/php.exe/UPLOAD_DIRECTORY/huh.gif
  Notice: php/php.exe is included in the URL.
  Additional information
  The information has been provided by CompuMe and RootExtractor.
  ps:大部分版本都有这个毛病.包括一些最新版本,所以请不要以cgi安装!切记...
  3.安装mysql
  安装到d:\\,也很简单,具体过程pass.
  只是mysql安装后的默认设置实在让人担心
  
  默认安装的mysql服务不安全因素涉及的内容有:
  
  一.mysql默认的授权表
  
  由于mysql对身份验证是基于mysql这个数据库的,也叫授权表。所有的权限设置都在这里了。
  我们只讨论最为重要的一个表 user表。它控制的是接受或拒绝连接。
  先看一下
  select host,user,password,Delete_priv from user;
  +-----------+------+------------------+-------------+
  | host | user | password | Delete_priv |
  +-----------+------+------------------+-------------+
  | localhost | root | 67457e226a1a15bd | Y |
  | % | root | | Y |
  | localhost | | | Y |
  | % | | | N |
  +-----------+------+------------------+-------------+
  现在新的版本,安装完毕都会出现一个快速设置窗口,用于设置口令。
  以上,就是user表里的内容(略了点)看看有什么问题?
  我们知道mysql的验证方式是比较特殊的,它基于两个2个信息来进行的
  1.从那里连接
  2.用户名
  第一条没什么问题,当然口令必须是安全的。
  第二条从任何主机,以用户root,不需要口令都可以连接,权限为所有的权限。(注:这里的权限是全局权限)
  第三条从本地主机,任何用户名(注:user为空白,不表示不需要用户名),不需要口令,都可以连接,所有的权限
  第四条从任何主机,任何用户名,不需要口令,都可以连接,无任何权限。
  可以看出,2\\3\\4都是不安全的,如何攻击这里就不说了,请参看资料文库。
  如果你mysql只允许本地连接,删除host的%和user中的nul(表示空)
  delete from user where host=‘%‘;
  delete from host where user=‘‘;
  最后的user表,看起来因该是这个样子
  +-----------+------+------------------+-------------+
  | host | user | password | Delete_priv |
  +-----------+------+------------------+-------------+
  | localhost | root | 67457e226a1a15bd | Y |
  +-----------+------+------------------+-------------+
  最后需要刷新授权表,使其立刻生效
  flush privileges;
  如果你的mysql需要被远程使用,需要为%段中的root帐号,加上一个安全的密码
  update user set password=password(‘youpass‘) where host=‘%‘;
  其中youpass,就是口令
  mysql> select host,user,password,Delete_priv from user;
  +-----------+------+------------------+-------------+
  | host | user | password | Delete_priv |
  +-----------+------+------------------+-------------+
  | localhost | root | 67457e226a1a15bd | Y |
  | % | root | 77c590fa148bc9fb | Y |
  +-----------+------+------------------+-------------+
  更好的做法是,对远程主机的连接,指定为特定的
  修改host中的%为允许连接的主机,比如:
  192.168.0.% 允许一个特定的子网
  www.sandflee.net 允许一个特定的主机
  帐号默认的名字也是担心的问题。有可能导致被暴力破解
  update user set user=‘localadmin‘ where host=‘localhost‘;
  update user set user=‘remoteadmin‘ where host=‘%‘;
  最后的user表看起来像是这个样子
  mysql> select host,user,password,Delete_priv from user;
  +-----------+-------------+------------------+-------------+
  | host | user | password | Delete_priv |
  +-----------+-------------+------------------+-------------+
  | localhost | localadmin | 67457e226a1a15bd | Y |
  | % | remoteadmin | 77c590fa148bc9fb | Y |
  +-----------+-------------+------------------+-------------+
  更为详细的资料,请去参考晏子的《MySQL中文参考手册》。随便那都有下
  
  二.缺乏日志能力
  
  mysql安装完成以后,会在%SystemRoot%目录下产生my.ini的设置文件
  默认的内容如下:
  ——————————————————————————————
  basedir=C:/mysql
  #bind-address=192.168.0.1
  datadir=C:/mysql/data
  #language=C:/mysql/share/your language directory
  #slow query log#=
  #tmpdir#=
  #port=3306
  #set-variable=key_buffer=16M
  [WinMySQLadmin]
  Server=C:/mysql/bin/mysqld-nt.exe
  user=root
  password=root
  ———————————————————————————————
  注意log#=这个
  它没有被定义,且被注销掉了。
  更改为一个适合的路径,比如:
  log=c:/mysql/logs/mysql.log
  
  三.my.ini文件泄露口令
  
  我们看到my.ini最后,有这两句
  user=root
  password=root
  如果,你安装完成时,使用了mysql所提供的快速设置功能,(较新的版本)你的帐号和口令将被写到my.ini文件中。
  这也是mysql写到启动组里的winmysqladmin.exe工具,运行时需要读取的。它提供的mysql服务
  的一些监视功能。这样winmysqladmin.exe才能获得mysql服务的状态信息。
  其实,这个也不算漏洞,我们看看my.ini默认的权限,它可以被user组用户读取。
  从而导致口令被泄露
  解决方法:
  从新设定my.ini文件的权限.
  从新设定帐号及口令
  不使用快速设置
  
  四.服务默认被绑定全部的网络接口上
  
  服务被绑定到了所有的网络接口上,比如,你只需要一个运行在内网的mysql服务,但是你的机器有
  外网的接口,mysql也会被绑定上,从而带来一些不必要的麻烦和威胁。
  在my.ini里的这句
  #bind-address=192.168.0.1
  它默认被注销掉了
  应该打开它
  如果,只是本地使用,更改为
  bind-address=127.0.0.1
  如果是其它情况,应该选者一个合适的网络接口
  
  五.默认安装路径下的mysql目录权限
  
  mysql默认的安装路径为c:\\mysql,基本上都难得改,要改的话也是麻烦,还要去改my.ini。
  但,这样就有个问题
  通常c:\\的权限是everyone组-所有的权限。这是默认的
推荐阅读
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
author-avatar
艾特PONYO
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有