user1445975
user1445975

Reputation: 145

Htaccess to block access to specific Mediawiki page?

In Mediawiki, I'm trying to find a way to block access to some of our template pages. I don't want some of our competition viewing our complex code and stealing it for their wikis (which is common in the fandom I'm from unfortunately). So I was trying to use htaccess to accomplish this by redirecting people to the main wiki page when they try to view a specific template page. However, nothing is happening. Here's what I used:

Redirect /wiki/index.php?title=Template:Box /wiki/index.php

I'm not sure what I'm trying to do is possible, though, or if this is how htaccess is supposed to be used!

Thank you in advance!

Upvotes: 1

Views: 535

Answers (2)

MaxSem
MaxSem

Reputation: 3547

In short words: don't do that!

Let me quote the relevant part of MediaWiki docs: MediaWiki is not designed to be a CMS, or to protect sensitive data. To the contrary, it was designed to be as open as possible. Thus it does not inherently support full featured, air-tight protection of private content.

There's no way MediaWiki guarantees partial read permissions: either people are able to see every page, or none of them. Otherwise, there will be loopholes to read your precious data. For example, TerryE's trick with rewrite rules adds absolutely no security: among a hundred of other ways, one can simply change Template:Box into Template_:_Box and the latter will be normalised internally into the former. MW sometimes HTTP-redirects to normalised titles, but that is very easy to overcome.

Upvotes: 3

TerryE
TerryE

Reputation: 10898

There are lots of ways of getting template content in MW, and MW has its own access control extensions, so I think that you are trying to cure a leaking sieve, but answering your Q directly:

RewriteEngine On
RewriteBase   /

RewriteCond  %{QUERY_STRING} \bTemplate:Box\b
RewriteRule  wiki/index.php  $0?             [L]

This will remove the query parameters if the URI is for /wiki/index.php and the query string contains Template:Box.

Upvotes: 1

Related Questions