it-swarm.cn

安全和.htaccess

大约一个月前,我在与业余爱好相关的托管服务器上创建了一个WordPress博客。所以,我现在是新手。

由于我担心安全问题,我做的一件事就是安装插件WP安全扫描。根据插件的结果,我的网站检查出来,除了我在结果中得到这个作为一个红旗:

文件.htaccess在wp-admin /中不存在(我在那里ssh'd并且它不存在)

好的,所以我对这个问题进行了大量搜索,并在.htaccess上找到了太多的信息。我一直在WordPress.org网站等上使用Hardening WordPress。并且还遇到了这篇文章: http://digwp.com/2010/07/wordpress-security-lockdown/

无论如何,我基本上对可用的大量信息感到困惑。

wp-admin中的.htaccess文件应该包含什么?我已经读过这个.htaccess文件应该用密码保护wp-admin目录而且我还读到这会导致功能问题。

非常感谢帮助。

谢谢。 -wdypdx22

更新好,所以我没有登录我的博客并使用与平时不同的计算机。我输入了网址www.mysite.com/wordpress/wp-admin/,并且有一个重定向登录。如果发生了什么,那么在wp-admin目录中甚至需要一个htaccess文件?

8
wdypdx22

UPDATE:当我第一次发布答案时,我错过了问题的症结所在;我的答案一般是关于.htaccess的安全性,现在列在双线下面(看看它是否让你感兴趣。)不幸的是我没有使用/wp-admin/保护.htaccess的具体经验所以我只列出我将追求的两个资源何时以及如果我需要它:

第一个推荐以下内容(这里是 关于它的一些讨论 。)

<Files ~ "\.(php)$">
AuthUserFile /etc/httpd/htpasswd
AuthType Basic
AuthName "restricted"
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
</Files>

后者有很多信息,特别是在评论中,但诚然为你提供一个阅读清单并不是你想要的答案。

对不起,我对这个问题的帮助不大。

========================================

通常,WordPress只有以下处理固定链接处理且与安全无关的内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

最近我找到了 WP htacess控件 插件,为你管理了很多.htaccess,而且我非常喜欢它。在调整它的设置后,它添加了以下选项:

# WPhtC: Disable ServerSignature on generated error pages
ServerSignature Off

# WPhtC: Disable directory browsing
Options All -Indexes

# WPhtC: Protect WP-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# WPhtC: Protect .htaccess file
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>

它还添加了关于性能而不是安全性的这些选项:

# WPhtC: Setting mod_gzip
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

# WPhtC: Setting mod_deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>

除此之外还有一些我没有尝试过的插件,但它们专注于安全性并且与.htaccess交互 - 您可以尝试各自只是为了看看它们对.htaccess文件做了什么:

除此之外,如果你想知道(IMO)#1专家资源 与WordPress相关的Apache安全 你可以在 AskApache.com找到它 ;老兄是铁杆!他的博客不会解决您的“ 太多信息 ”问题,但至少您可以将其视为权威资源!

以下是一些示例(尽管并非所有示例都直接与WordPress相关,但它们都适用):

无论如何,希望这会有所帮助。

8
MikeSchinkel

它背后的想法,如果您从过去的升级或零日攻击中扼杀文件,您的系统可能会被黑客入侵。另外通过其他方法保护wp-admin将有助于防止暴力攻击。

一个想法)如果只是你编辑网站,你可以通过ip做类似的事情来限制对该文件夹的访问

<Files *>
Order deny,allow
Deny from All
Allow from 1.2.3.4
</Files>

使动态IP系统更容易忍受;你应该能够允许从一个子块,所以如果你的IP池总是来自1.2.3.128 - 1.2.3.255,那么你可以做类似1.2.3.128/25的事情

另一个想法)需要HTTPS,如果他们通过http尝试,则给予许可拒绝。但是不要将它们重定向到https。您可以使用自签名证书或CA Cert中的证书,而无需购买。

4
Ryan Gibbons

我总是在wp-admin中包含一个.htaccess文件,即使我从未在其中添加任何内容,因为它会否定根目录的文件。有些人使用wp-admin .htaccess文件来隐藏除一个IP地址以外的所有目录,其他人使用它来密码保护目录。

但是,使用.htaccess保护管理部分的密码将禁用ajax通信,因为它们与wp-admin/admin-ajax.php交互。

一般来说,我没有太多理由在admin .htaccess文件中添加任何内容,除非你非常偏执。无论如何,攻击通常都以wp-content为目标。

0
John P Bloch