<Directory /data/wwwroot/www.123.com/upload> php_admin_flag engine off </Directory>
[root@yong-02 111.com]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 把代碼放入到配置文件中 <Directory /data/wwwroot/111.com/upload> ##把upload目錄下全部的php禁止解析 php_admin_flag engine off //禁止解析php <FilesMatch (.*)\.php(.*)> //如今這裏全部訪問php都會是403 ##這裏的 .用\脫義 Order allow,deny //若是不作這個deny,就會直接訪問到源代碼,這樣就不太友好 Deny from all </FilesMatch> 而後保存退出
[root@yong-02 111.com]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 111.com]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 111.com]# mkdir upload [root@yong-02 111.com]# ls 123.php 1.php admin images index.php qq123.png upload [root@yong-02 111.com]# cp 123.php upload/ [root@yong-02 111.com]# ls upload/ 123.php
[root@yong-02 111.com]# curl -x127.0.0.1:80 '111.com/upload/123.php' -I HTTP/1.1 403 Forbidden Date: Fri, 01 Jun 2018 14:14:20 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1
[root@yong-02 111.com]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <Directory /data/wwwroot/111.com/upload> ##把upload目錄下全部的php禁止解析 php_admin_flag engine off #<FilesMatch (.*)\.php(.*)> ##這裏的 .用\脫義 #Order allow,deny #Deny from all #</FilesMatch> </Directory> 而後保存退出
[root@yong-02 111.com]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 111.com]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 111.com]# curl -x127.0.0.1:80 '111.com/upload/123.php' <?php echo "123.php";
<Directory /data/wwwroot/111.com/upload> ##把upload目錄下全部的php禁止解析 php_admin_flag engine off <FilesMatch (.*)\.php(.*)> ##這裏的 .用\脫義 Order allow,deny Deny from all </FilesMatch> </Directory>
[root@yong-02 111.com]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 111.com]# /usr/local/apache2/bin/apachectl graceful
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] RewriteRule .* - [F] </IfModule>
有時候,網站會受到一種叫 cc 攻擊,CC攻擊就是黑客,經過軟件,肉雞同時去訪問一個站點,超過服務器的併發,就會致使站點宕機;經過肉雞,軟件去訪問站點,就是普通的訪問,沒有什麼特殊的,只是讓站點超過併發致使嚴重超負荷而宕機,因此沒辦法去進行控制;所謂CC攻擊都會有一個規律的特徵,就是user_agent是一致的,好比同一個IP、同一個標識、同一個地址;遇到這種規律的user_agent頻繁訪問的狀況咱們就能夠斷定他就是CC攻擊,咱們就能夠經過限制他的user_agent 減輕服務器壓力,只須要讓他從正常訪問的200,限制爲403,就能減輕服務器的壓力,由於403僅僅是一個請求,只會使用到不多的帶寬,畢竟他沒有牽扯到php 和mysqlphp
cc攻擊html
肉雞 (受黑客遠程控制的電腦)mysql
[root@yong-02 111.com]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] //條件 RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] //條件 RewriteRule .* - [F] </IfModule>
[root@yong-02 111.com]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 111.com]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 111.com]# curl -x127.0.0.1:80 '111.com/upload/123.php' -I HTTP/1.1 403 Forbidden Date: Fri, 01 Jun 2018 14:38:08 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1 [root@yong-02 111.com]# curl -x127.0.0.1:80 '111.com/123.php' -I HTTP/1.1 403 Forbidden Date: Fri, 01 Jun 2018 14:38:17 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1
[root@yong-02 111.com]# tail -5 /usr/local/apache2/logs/111.com-access_20180601.log 192.168.180.1 - - [01/Jun/2018:22:25:28 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [01/Jun/2018:22:25:28 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [01/Jun/2018:22:25:29 +0800] "GET /upload/1fasdfas.php HTTP/1.1" 403 228 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 127.0.0.1 - - [01/Jun/2018:22:38:08 +0800] "HEAD HTTP://111.com/upload/123.php HTTP/1.1" 403 - "-" "curl/7.29.0" 127.0.0.1 - - [01/Jun/2018:22:38:17 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 403 - "-" "curl/7.29.0"
模擬user_agent,去訪問會看到狀態碼爲200 能夠正常訪問 [root@yong-02 111.com]# curl -A "liyueyong liyueyong" -x127.0.0.1:80 '111.com/123.php' -I HTTP/1.1 200 OK Date: Fri, 01 Jun 2018 14:40:20 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 X-Powered-By: PHP/7.1.6 Content-Type: text/html; charset=UTF-8 [root@yong-02 111.com]# curl -A "liyueyong liyueyong" -x127.0.0.1:80 '111.com/123.php' 123.php[root@yong-02 111.com]#
[root@yong-02 111.com]# tail -5 /usr/local/apache2/logs/111.com-access_20180601.log 192.168.180.1 - - [01/Jun/2018:22:25:29 +0800] "GET /upload/1fasdfas.php HTTP/1.1" 403 228 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 127.0.0.1 - - [01/Jun/2018:22:38:08 +0800] "HEAD HTTP://111.com/upload/123.php HTTP/1.1" 403 - "-" "curl/7.29.0" 127.0.0.1 - - [01/Jun/2018:22:38:17 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 403 - "-" "curl/7.29.0" 127.0.0.1 - - [01/Jun/2018:22:40:20 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 200 - "-" "liyueyong liyueyong" 127.0.0.1 - - [01/Jun/2018:22:40:29 +0800] "GET HTTP://111.com/123.php HTTP/1.1" 200 7 "-" "liyueyong liyueyong"
[root@yong-02 111.com]# ls 123.php 1.php admin images index.php qq123.png upload [root@yong-02 111.com]# vim index.php [root@yong-02 111.com]# cd /usr/local/src/php-7.1.6/ [root@yong-02 php-7.1.6]# cp php.ini-development /usr/local/php7/etc/php.ini [root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl graceful [root@yong-02 php-7.1.6]# 這時用瀏覽器訪問看到配置文件的路徑
[root@yong-02 php-7.1.6]# vim /usr/local/php7/etc/php.ini 搜索 /disable 在disable_functions =後禁掉一些危險的函數 disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo 而後保存
[root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 php-5.6.32]# vim /usr/local/php/etc/php.ini 搜索/timezone 在date.timezone定義時區 須要刪除 ; 分號 date.timezone = Asia/Shanghai 搜索/display 須要刪除 ; 分號 將display_errors = On更改成display_errors = Off 而後保存退出
[root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl graceful
搜索/log_errors,將錯誤日誌文件打開 log_errors = On 搜索/error_log,將錯誤日誌文件定義到tmp目錄下 須要刪除 ; 分號 error_log = /tmp/php_errors.log 而後保存退出
[root@yong-02 php-7.1.6]# curl -A "a" -x127.0.0.1:80 http://111.com/index.php [root@yong-02 php-7.1.6]# ls /tmp/ pear php_errors.log
[root@yong-02 php-7.1.6]# ll /tmp/php_errors.log -rw-r--r-- 1 daemon daemon 137 6月 1 23:54 /tmp/php_errors.log
[root@yong-02 php-7.1.6]# ps aux |grep httpd root 1336 0.0 0.7 258888 13660 ? Ss 21:58 0:01 /usr/local/apache2/bin/httpd -k start daemon 3758 0.0 1.0 680948 18968 ? Sl 23:54 0:00 /usr/local/apache2/bin/httpd -k start daemon 3759 0.0 0.5 545716 10348 ? Sl 23:54 0:00 /usr/local/apache2/bin/httpd -k start daemon 3760 0.0 0.5 545716 10348 ? Sl 23:54 0:00 /usr/local/apache2/bin/httpd -k start root 3891 0.0 0.0 112676 984 pts/0 R+ 23:56 0:00 grep --color=auto httpd
[root@yong-02 php-7.1.6]# grep error_log /usr/local/php7/etc/php.ini ; server-specific log, STDERR, or a location specified by the error_log ; Set maximum length of log_errors. In error_log information about the source is error_log = /tmp/php_errors.log ;error_log = syslog ; OPcache error_log file name. Empty string assumes "stderr". ;opcache.error_log=
[root@yong-02 php-7.1.6]# touch /tmp/php_errors.log ; chmod 777 /tmp/php_errors.log - 能夠先建立好/tmp/php_errors.log文件,而後賦予chmod 777權限
[root@yong-02 php-7.1.6]# cat /tmp/php_errors.log //會告訴你由於安全的緣由,這個函數已經被禁掉了 [01-Jun-2018 23:54:36 Asia/Shanghai] PHP Parse error: syntax error, unexpected end of file in /data/wwwroot/111.com/index.php on line 4
打開php配置文件linux
[root@yong-02 php-7.1.6]# vim /usr/local/php7/etc/php.ini 搜索/open_basedir,並上刪除 ; 號 open_basedir = /data/wwwroot/111.com:/tmp 而後保存退出
[root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 php-7.1.6]# curl -A "a" -x127.0.0.1:80 111.com/index.php -I HTTP/1.1 200 OK Date: Fri, 01 Jun 2018 16:22:43 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 X-Powered-By: PHP/7.1.6 Content-Type: text/html; charset=UTF-8
[root@yong-02 php-7.1.6]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/" 而後保存退出
[root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 php-7.1.6]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 php-7.1.6]# curl -A "a" -x127.0.0.1:80 111.com/index.php 111.com[root@yong-02 php-7.1.6]# curl -A "a" -x127.0.0.1:80 111.com/2.php 123[root@yong-02 php-7.1.6]#