PHP漏洞怎么打补丁,云服务器如何选择操作系统?
建站需要购买云服务器,在云服务器选购过程中,除了常见的CPU、内存、硬盘、带宽等配置以外,用户还需要自行选择操作系统,大多数云服务器都使用Windows Server或Linux操作系统:
Windows系统
Windows Server是专为服务器设计的专有操作系统,包括Microsoft开发的服务器应用程序,如IIS Web服务器,用于支持虚拟化的工具,以及包括防火墙的安全工具。Window系统的用户界面和开发环境都是面向对象的,易于理解、学习和使用。Windows是一个单用户、多任务的操作环境,允许用户同时运行多个应用程序,或在一个程序中同时做几件事情。
Windows系统有多个版本:Win 2003是较早出现的,不过随着服务器硬件环境的不断提升,微软基本已经停止对该版本的安全更新,因此不再列入推荐。现在比较主流的版本是win2008,相对前者而言显得更加成熟,无论是网络优化还是系统兼容方面都比较好。Win2012则对系统原有功能进行了扩展,兼具开放性、可伸缩性、安全性、高性能、操作简单等优势特点,但应用普及率还有待提升。
Linux系统
Linxu是专为多用户服务器环境而构建的操作系统,可以实现不同用户共同登陆系统,资源分享上也比较公平。Linux运行稳定高效,并有庞大的用户和社区支持,能很快发现系统漏洞,迅速发布安全补丁,此外还支持大量的优质开源软件。不过,基于Linux的操作系统对技术要求较高,对小企业或一般用户而言,有一定的管理难度。
Linux拥有大量的发行版可用,每个发行版都提供了一个完整的服务器操作系统和一个管理器,允许用户轻松安装诸如Web服务器或电子邮件服务之类的软件,常用发行版如CentOS、Ubuntu和Debian。CentOS 是企业级的Linux发行版本,稳定、占用资源小、配置简单;Ubuntu有强大的软件源支持、兼容性好,但主要以桌面应用为主;Debian则以稳定性著称,整个系统基础核心非常小,对于小内存,首选Debian。
操作系统怎么选
那么在建站过程中选择哪个操作系统才更合适呢?主要看实际的应用需求。一般来说,可以根据网站的开发语言、数据库类型以及用户的使用习惯来进行选择:如果开发语言为ASP、.NET、HTML,数据库为ACCESS、SQL Server,请选择Windows系统;如果开发语言为PHP、HTML,数据库为MySQL,请选择Linux系统;另外如果需要大量开发的可选linux系统,更习惯图形界面的可选windows系统。
那如果选错系统怎么办?不必担心,可以随时向服务商申请替换,比如西部数码就为用户提供云服务器系统重装服务,用户购买云服务器后,进入个人中心—业务管理—服务器管理—管理界面,选择系统重装功能,即可对系统进行重新初始化(如图)。
由于重装系统相当于将之前的系统盘进行格式化,存在文件丢失的风险,可以提前备份重要数据,或选择保留数据盘进行重装;不过,当用户选择的数据库版本或操作系统模板与重装前不一致,可能会出现服务无法启动的问题,这时最好先将服务器数据备份到本地,选择不保留数据重装。
西部数码为用户提供20余项可选系统环境,支持多版本linux、windows与DIY系统,用户可自行选择所需环境参数,或咨询客服了解更多专业配置方案。为确保空间安全,在执行重装任务之前,西部数码还将对用户身份进行二次验证。需要注意的是,频繁重装系统会占用大量IO资源,建议仔细核实需求后再行操作。
除选错系统的情况以外,当系统使用时间久了,运行速度变慢,或遭受病毒攻击、出现突然崩溃的时候,也可以通过系统重装加以解决。
php语言网站如何加强安全性?
PHP是一种非常流行之网站脚本语言,但是它本身所固有之安全性是非常薄弱。本文讲述了PHP增强计划(Hardened-PHP project)和新之Suhosi计划,Suhosin提供了增强之PHP之安全配置。
PHP是带有争论地但又是最流行之一种网站脚本语言。它之所以流行,是因为它低廉之价格,然而,这低廉之价格导致用PHP写之网站应用程序越来越多 之同时也越来越多之展现出PHP本身在安全上之脆弱,这种安全特性显示出PHP是极不可靠,不过同时对这个脚本语言本身而言它又是非常灵活之,使用它就能 很容易之实现代码,不过这些代码都是臃肿之且不安全之,虽然是这样它还是一直都拥有很多之使用者。你可以根据实际情况来假设,一次又一次,各种应用软件都 体现了这种脆弱性:容易受到SQL注入、跨站脚本、任意执行指令等等之攻击。
因为象safe_mode和open_basedir这样内置之PHP安全措施将被忽略,PHP增强计划创建之PHP更具有安全性,同时也对PHP 进行校验检查。最初,这些是由增强之PHP补丁完成之,这些补丁需要修补并重新编译PHP自身。最近,PHP增强计划发布了一个名为Suhosin之新工 程。
Sohosin包括有两部分:第一部分是PHP之补丁,这个补丁强化了Zend引擎自身,以免可能产生缓冲溢出,也可以防止相关之弱点。第二部分是 Suhosin之扩展,这是一个PHP之独立使用模块。这两部分可以一起工作,或者是扩展部分单独工作。
开发人员不希望为了达到安全性而总去维护他们自己之PHP安装设置和他们当然更喜欢直接使用销售商提供之Linux分布系统上PHP,使用扩展模块 能提供更多PHP本身所不能具有之安全特点。
扩展模块很容易安装;它也能通过PECL安装,或者是下载后通过编译安装:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
为了使用suhosin,还需要增加/etc/php.ini,如下所示:
extension=suhosin.so
对于大部分人来说默认之配置选项已经足够了。为了加强设置,可以在/etc/php.ini中增加相应之值。网站中详细地介绍了有关之各种配置选 项,这些说明可以帮助你进行初始化配置。
使用Suhosin,你可以得到一些错误日志,你能把这些日志放到系统日志中,也可以同时写到其他任意之日志文件中去;它还可以为每一个虚拟主机创 建黑名单和白名单;可以过滤GET和POST请求、文件上载和cookie。你还能传送加密之会话和cookie,可以设置不能传送之存储上线等等。它不 像原始之PHP强化补丁,Suhosin是可以被像Zend Optimizer这样之第三方扩展软件所兼容之。
下面是我写的一个操作方法:
wget -c http://soft.vpser.net/web/suhosin/suhosin-patch-5.2.10-0.9.7.patch.gz
gzip -d ./suhosin-patch-5.2.10-0.9.7.patch.gz
cd php-5.2.10
patch -p 1 -i ../suhosin-patch-5.2.10-0.9.7.patch
编译的时候
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin
把suhosin编译进去就好了
是不是Linux下开发更高效?
先回答问题:不是
我自己服务器选择的是Linux系统,带的团队也让他们清一色Linux,公司服务器我也是选择这个系统,说一下为什么有的时候要选择Linux系统,或应该学习linux系统。
对系统的熟悉会决定开发效率
首先回答下题主的问题,选择Linux与否,其实与开发效率关系并不是太大,有的时候,换系统带不来更高效的开发效率,反而增加了不少学习成本,使用自己熟悉的会比较好一些,反而开发效率更高。
虽然Linux下有vim这类大神级别的编辑器,但win也弱,07年那阵子,一直就在win上开发的,一样不慢,我认识的很多人,有不少在win下开发的,需要Linux环境,装个虚拟机解决,所以,其实与开发速度没什么太大关系。
服务器系统需求
开发项目,要上线,你迟早要部署的,就是部署到服务器环境,这就导致你不得不学一些Linux相关的操作或知识。
大部分情况下,服务器都会选择Linux系统的,win占很数。
虽然开发环境和生产环境(服务器系统)有时候不一样,并不会对你的项目有太大的影响,比如我第一家公司一直在win下开发java,公司里所有人都用的win系统。但最好的情况,是你的开发环境与服务器环境要保持的高度的一致性,包括版本和补丁。
因为,一个小的改变会引起很多操作上的不同。
比如去年在Ubuntu下做了个java有关socket的项目,但服务器用的是CentOS,部署时那个费劲,Ubuntu不用关心的东西在CentOS下是另一个样,整整费了我一天时间才弄好。
开发语言不允许
是的,与开发语言有关的,大部分语言是跨平台的,但有少量语言比较奇葩,比如我上家公司用的语言,ruby同学。
你可以在Linux下用,也可以在mac下用,都可以获得非常好的体验,但是,如果你在win下用,嘿嘿,你可能会很耗心力。
一般过来人会这么劝你,如果你不想给自己找太多麻烦,不要在win下做ruby的开发。
因为你会遇到各种各样的奇葩问题,而且有很多时候没有解决方案。但在Linux下,前辈们都趟过水了,你可以在网上很容易找到相应的解决方法,以帮助你度过难关。
Linux系统优势很多人接触了linux环境做开发,比较多的感受是:配置环境容易,自由度好一些,安装软件也方便,比如你在centos下可以用yum install 或在ubuntu下用apt-get install就可以直接安装。
比如要安个版本控制器,你可以直接apt-get install git,就安上了,不需要你去网站搜下载安装包,再安装。
不管如何,还是建议学学Linux,相关的部署方法和操作方法,毕竟你迟早需要自己部署应用环境的,迟早学也会给自己加分不少。
有什么问题可以留言或评论!
以上,希望能帮到你,祝好!
黑客为什么可以做到无需知道源码的情况下找出系统漏洞?
感谢邀请。
每天活跃在互联网上的应用成百上千万,包括PC端以及目前越来越主流的移动端,不仅有通过浏览器访问的,还有需要安装客户端的,不仅有与服务器强交互的,还有独立运行的本地软件。
而这其中,开源的(包括开放源码的)产品少之又少。但,这并不妨碍一个黑客找出其中的漏洞。换句话说,找漏洞并不需要源码。
当然了,在有源码的情况下,挖洞是一件难度系数指数下降的事情。虽然读懂一个大型软件源码耗时又耗力,但对于黑客来说,可以略去其中大半的代码来阅读,只关心可能造成危险的部分。就像一名建筑工程师看一份大楼的施工图,要看懂大楼的结构、建筑材料、水电线路等等各方各面,而对于《Prison Break》中的Michael Scofield可能只关心地下管道的分布。
那么,在没有源码的情况下,黑客怎么挖洞呢?这种情况,我们可以称之为黑盒。而挖洞,的确需要与程序编辑者持有完全相反的角度和看法。对于输入输出点,程序猿考虑的是正确的输入获得正确的输出,而黑客则考虑特殊的非法输入获得异常的有价值输出。那系统登录来说,程序猿考虑的是用户输入注册的用户名、口令能够在登录时与数据库中的数据匹配成功,而黑客则会尝试引起数据库查询异常的输入作为用户名、口令内容,希望应用返回更多数据库中的有效数据。
对于黑客来说,不知道源码情况下,只要有输入就可以了,不管是应用具有的功能页面,还是一个输入接口,通过一种叫做模糊测试的技术就可以开始你的挖洞之旅。模糊测试可以构造一系列正常和异常的输入值,根据应用的返回来判断脆弱点的存在。
在黑客的武器库中,模糊测试只是其中一个利器,像什么漏扫、逆向、脱壳、注入、暴破等等不一而足。
作为程序猿,在编写程序时不仅要从正向角度完成应用的功能,还需要从黑客角度逆向分析应用在处理异常输入时的反应,才能做出高安全的应用。
未来的发展是用windows好还是用Linux好?
大一新生能想到这个问题,给你点个赞。作为计算机通信专业的学生,多学学Linux是非常有好处的。
因为计算机通信专业和计算机科学与技术这个专业还不太一样。计算机科学与技术专业注重于从计算机的原理知识学起,所以所能接触到的技术面更广,对整个计算机行业的视野更加开阔。虽然计算机通信专业的没有这么多要求。但是我个人认为只要是学计算机方向的,都要尽量具备广阔的专业视野。
决定侧重Linux阵营发展,我认为有以下三个优点。
专业思维因为我们从高中接触信息技术课开始,所用的操作系统几乎都是windows。对计算机系统的认识也仅限于windows为操作系统的计算机系统。如果能在大学里熟练掌握Linux系统,结合专业的课程,对计算机专业的一些概念和理论能够有不一样角度的认识,专业思维方面可以更加全面和系统。
专业技能使用Linux操作系统是一项技能,如果能够熟练掌握使用维护的知识,相对于其他只懂得windows操作系统的同学是很有优势的。并且很多优秀的开源软件也是在Linux系统上运行的,所以也会有更多的机会接触到这些优秀的软件,开阔自己的视野。
就业前景从目前来看国内的通信行业,国产化替代的大潮刚刚掀起。那操作系统领域就一定是Linux打龙头。在大学期间玩转Linux系统的话,将来在通信行业一定是很吃香的。毕业就业的时候,掌握Linux系统的知识,会有不少加分。Linux系统运维是现在通信行业所紧缺的人才,就业前景比较好。
综上,能有学习Linux的想法,说明你真的是一个很上心的学生。我可以很负责任的告诉你,选择Linux阵营来发展这一个非常正确的选择。但这里要说明一点,选择linux发展并不代表抛弃windows不用,你们课程设置类的windows相关的课程还是要好好学习的。