基本上我们有一个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。