locking维基只能访问密码,但通过.htaccess保持对子网的开放

基本上我们有一个Wiki,里面存有一些敏感信息 – 不是我知道的最好的,但是我的前任设定的。 我希望能够请求不在本地networking子网中的任何人访问密码。 那些在本地子网上的应该能够继续而不input密码。

下面的.htaccess似乎不再工作,因为它是让非本地访问而不需要密码:

AuthName "Our Wiki" AuthType Basic AuthUserFile /path/to/passwd/file AuthGroupFile /dev/null Require valid-user Allow from 192.168 Satisfy Any order deny,allow 

我无法弄清楚为什么。 最近升级了它应该保护的WikkaWiki,它对.htaccess文件进行了破坏,所以我从内存/谷歌search中恢复了上述内容。 也许我错过了一个重要的指示?

完整的.htaccess如下所示:

 AuthName "Our Wiki" AuthType Basic AuthUserFile /path/to/passwd/file AuthGroupFile /dev/null Require valid-user Allow from 192.168 Satisfy Any SetEnvIfNoCase Referer ".*(adultsite|picturesplace|learnthebiz|pi-o).*" BadReferrer order deny,allow deny from env=BadReferrer <IfModule mod_rewrite.c> # turn on rewrite engine RewriteEngine on RewriteBase / # if request is a directory, make sure it ends with a slash RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*/[^/]+)$ $1/ # if not rewritten before, AND requested file is wikka.php # turn request into a query for a default (unspecified) page RewriteCond %{QUERY_STRING} !wakka= RewriteCond %{REQUEST_FILENAME} wikka.php RewriteRule ^(.*)$ wikka.php?wakka= [QSA,L] # if not rewritten before, AND requested file is a page name # turn request into a query for that page name for wikka.php RewriteCond %{QUERY_STRING} !wakka= RewriteRule ^(.*)$ wikka.php?wakka=$1 [QSA,L] </IfModule> 

你在这条线上是错的

 order deny,allow 

应该

 order allow,deny 

看看mod_authz_host文档中的表格

为什么你考虑维护Wiki中的敏感信息不好? 如果你的HTTP连接运行在TLS上,那应该没有什么坏处。

给你的问题。 我们正在使用MediaWiki,我刚刚尝试编辑LocalSettings.php:

 $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['read'] = false; if ($_SERVER['REMOTE_ADDR']=='192.168.1.1') { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; } 

它工作。 这段代码的作用是阻止阅读/编辑,如果用户没有login。 但是它的客户端IP等于上面的那个,它可以自由编辑和阅读Wiki。

也许你可以用类似的方法攻击WikkaWiki的PHP。

要将wiki限制为只有已获得login凭证的用户,您可以通过添加以下几行来在第405行(右上$wikka->Run )上编辑wikka.php。

 if('UserSettings' != $page and !is_array($wakka->GetUser())) { header('Location: /UserSettings'); exit; } 

然后在你的wikkaconfiguration中,你也将要阻止新的注册被允许通过。 否则,有人可以简单地注册并查看您的重要信息。 在第51行中,将以下内容更改为:

 'allow_user_registration' => '1', 

至:

 'allow_user_registration' => '0', 

现在,除了login页面('UserSettings')之外,每个人都将被挑战访问任何维基页面的密码。 这并不是一件坏事,因为无论如何,在浏览wiki时要快得多,因为它不需要进行主机名查找!

不是我所希望的,但是它确实有效。

感谢大家的所有build议。

尝试这个:

 Order deny,allow Deny from all AuthName "Our Wiki" AuthType Basic AuthUserFile /path/to/passwd/file AuthGroupFile /dev/null Require valid-user Allow from 192.168 Satisfy Any 

你也应该考虑删除/注释掉这个块:

 SetEnvIfNoCase Referer ".*($LIST_OF_ADULT_WORDS).*" BadReferrer order deny,allow deny from env=BadReferrer 

因为顶部的指令应该强制任何外部请求者首先进行authentication。