我的root php可以直接访问,我试图阻止它但不成功

时间:2015-08-19 06:10:32

标签: php wordpress .htaccess

在我的网站(WP)上,有些php可以直接访问,这是其中一个例子/ wp-settings.php

由于:

  

警告:require(ABSPATHwp-includes / load.php):无法打开流:第21行/home1/hidden/public_html/wp-settings.php中没有此类文件或目录

     

警告:require(ABSPATHwp-includes / load.php):无法打开流:第21行/home1/hidden/public_html/wp-settings.php中没有此类文件或目录

     

致命错误:require():无法打开所需的' ABSPATHwp-includes / load.php'第21行/home1/hidden/public_html/wp-settings.php中的(include_path ='。:/ opt / php54 / lib / php')

我已在.htaccess

上尝试过此操作
<Files *.php>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Files>

<Files index.php>
    Order Allow,Deny
    Allow from all
</Files>

阻止直接访问但允许从服务器访问,但这导致我的仪表板上出现错误,许多控件无法访问。

我也尝试过类似的其他东西,但没有一个工作

我不会专门阻止直接访问wp-settings.php,因为我确定还有其他php个文件需要阻止直接访问。

我的问题,如何阻止直接访问php,我的服务器能够访问php和所有WP仪表板控件正常运行

由于

2 个答案:

答案 0 :(得分:0)

在文件wp-settings.php

的顶部添加以下行
<?php if ( ! defined('ABSPATH')) exit('No direct script access allowed');

限制对wp-includes

的所有访问权限
# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

答案 1 :(得分:0)

我将此添加到我的.htaccess:

<Files error_log>
    Deny from all
</Files>
<Files wp-settings.php>
    Deny from all
</Files>
<Files wp-config.php>
    Deny from all
</Files>
<Files wp-config-sample.php>
    Deny from all
</Files>
<Files wp-load.php>
    Deny from all
</Files>
<Files wp-blog-header.php>
    Deny from all
</Files>

回答这个问题的唯一方法就是简单地枚举根目录中包含文件的所有文件(肯定应该在wp-includes中!)。

然后是在wp-includes / .htaccess文件中放入什么的问题。我还在努力。它应该只是拒绝访问所有内容的情况,但我怀疑它不是那么简单 - 如果我没记错的话,这样就会杀死编辑器。