Apache禁止解析php

apache的安全配置看一下網站的根目錄/data/www/有一個/data/www/data/目錄看一下她的權限php


[root@zhangmengjunlinux data]# ls -al /data/www/data/html

總用量 68linux

drwxr-xr-x 15 daemon root   4096 1月   1 11:30 .web

drwxr-xr-x 13 root   root   4096 12月 27 02:10 ..apache

drwxr-xr-x  2 daemon root   4096 12月 27 01:43 addonmd5vim

drwxr-xr-x 12 daemon root   4096 12月 31 16:33 p_w_upload緩存

drwxr-xr-x  2 daemon root   4096 12月 27 01:43 avatar安全

drwxr-xr-x  2 daemon root   4096 12月  8 10:39 backup_a7ac7c服務器

drwxr-xr-x  2 daemon root   4096 12月 31 16:39 cacheapp

drwxr-xr-x  3 daemon daemon 4096 12月 27 02:08 diy

drwxr-xr-x  2 daemon root   4096 12月 27 01:43 download

-rw-r--r--  1 daemon root      0 12月  8 10:39 index.htm

-rw-r--r--  1 root   root     20 1月   1 11:30 info.php

-rw-r--r--  1 daemon daemon    0 12月 27 02:08 install.lock

drwxr-xr-x  2 daemon root   4096 12月  8 10:39 ipdata

drwxr-xr-x  2 daemon root   4096 1月   1 10:36 log

drwxr-xr-x  2 daemon root   4096 12月 27 01:43 plugindata

-rw-r--r--  1 daemon daemon    0 1月   1 11:34 sendmail.lock

-rw-r--r--  1 daemon root    772 12月  8 10:39 stat_setting.xml

drwxr-xr-x  2 daemon daemon 4096 12月 31 17:43 sysdata

drwxr-xr-x  2 daemon root   4096 1月   1 11:34 template

drwxr-xr-x  2 daemon root   4096 12月 27 02:08 threadcache

實際上apache運行的用戶就是daemon,咱們爲何要把它改爲屬主daemon,由於咱們在安裝apache的時候有去驗證通過檢測,若是你這個沒有寫權限的話你是不可能成功安裝的,爲何/data/目錄須要去寫呢,由於咱們在data目錄下會生成一些緩存文件、臨時文、附件,好比說咱們的網站有可能上傳一些圖片,咱們來測一下,發一個帖子,那帖子發完以後,咱們去網站的根目錄下查找

[root@zhangmengjunlinux data]# cd /data/www/data/p_w_upload/forum/

[root@zhangmengjunlinux forum]# ls   咱們在這裏看到生成一個新的目錄

201512  201601

[root@zhangmengjunlinux forum]# cd 201601/

[root@zhangmengjunlinux 201601]# ls

01  index.html

[root@zhangmengjunlinux 201601]# cd 01/

[root@zhangmengjunlinux 01]# ls

103719rkd74osszda4f673.jpg  index.html

咱們能夠看到它生成了一個新的圖片,那麼這個圖片就是咱們剛剛上傳的圖片,不妨咱們去WEB訪問一下

www.test.com/data/attachemnt/forum/201601/01/103719rkd74osszda4f673.jpg 圖片的地址如今是Forbidden由於咱們作了防盜鏈,如今咱們遇到一個問題,這些 目錄data目錄它意味着能夠被用戶去寫,若是網站有漏洞的話,被被一我的上傳了***文件,若是被執行了怎麼辦,不當心一點執行了服務器被***了,能夠得到一些權限,那這個時候咱們就應該給它作一些限制,要麼你不容許它上傳,要麼你即便它上傳以後,咱們不容許它作任何的操做,兩種狀況,那麼第一種你是不能夠作的,由於你一旦限制了任何的用戶都不能正常上傳,那這個確定是不合適的,那咱們只能用第二種方法,去限制它進行解析,它即便上傳了一個***文件,可是它不能正常的去解析,那麼也就意味着咱們沒有風險,怎麼去限制呢,那好比說咱們就針對這個data目錄去作一個限制,禁止解析

#vim /usr/local/apache2/conf/extra/httpd-vhost.conf

首先咱們先要定義它的路徑

<Directory /data/www/data/>

咱們要把PHP的解析引擎關掉,不讓它解析了

php_admin_flag engine off

而且咱們再作一個限制,你即便不能解析了,可是咱們還能夠訪問啊,訪問的時候它就會把你的源代碼下載走

簡單關閉PHP引擎就這麼一行:php_admin_flag engine off

那麼如今也就意味着網站的目錄data下的全部目錄包括子目錄,咱們先作一個實驗

[root@zhangmengjunlinux 01]# cd /data/www/data/

[root@zhangmengjunlinux data]# ls

  info.php    

[root@zhangmengjunlinux data]# vim info.php

<?php

phpinfo();

>?

保存退出

去web測試 www.test.com/data/info.php

你會發現它會直接把文件下載下來,這個確定是不對的,好比說你這個目錄裏就有一些PHP文件,結果用戶一訪問的時候就直接把他們下載下來了,這確定是不對的咱們要怎麼作呢。若是不去禁止解析 www.test.com/data/info.php 它能夠正常顯示的,能解析的,那假如這個文件時某一個***上傳的,結果呢一刷新發現它正常解析了,它就很顯然的發現了你的服務器上的配置是怎麼編譯的和一些路徑還有哪些模塊,這是很危險的事情,因此咱們有必要給它作一些限制,而後限制以後咱們還要不讓它這php去下載,直接給它禁掉

<filesmatch "(.*)php">

Order deny,allow

Deny from all

allow from 127.0.0.1

</filesmatch>

那麼再次刷新的時候它是403 Forbidden了,然而呢咱們用127.0.0.1去訪問的時候,發現它解析不出來

[root@zhangmengjunlinux data]# curl -x127.0.0.1:80 www.test.com/data/info.php -I

HTTP/1.1 200 OK

Date: Fri, 01 Jan 2016 04:53:57 GMT

Server: Apache/2.2.31 (Unix) PHP/5.3.27

Last-Modified: Fri, 01 Jan 2016 03:30:26 GMT

ETag: "e3f3c-14-5283d646fc554"

Accept-Ranges: bytes

Content-Length: 20

Cache-Control: max-age=0

Expires: Fri, 01 Jan 2016 04:53:57 GMT

Content-Type: application/x-httpd-php

這是如何去解析PHP的

wKiom1aJL5bgTiDBAAAdRJP1CVw203.png

相關文章
相關標籤/搜索