Disclose-Secret 2.4 und die HTTP-Basic-Authentifizierung per PHP über mod_fcgid

Ich verwende bisher das Plugin „Disclose Secret“ für den Schutz der privaten Posts. Leider hat dieses Plugin ein paar Probleme. Eins davon ist, dass es keine HTTP-Basic-Authentifizierung per ungepatchem mod_fcgid unterstützt, wodurch der geschützte RSS-Feed nicht mit einem registrierten Nutzer abrufbar ist.

Werbung


Dazu muss man in der .htaccess folgende Zeilen hinzufügen:

# PHP (CGI mode) HTTP Authorization with ModRewrite:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

Anmerkung: Sofern die Rewrite-Engine schon aktiviert wurde, muss man das natürlich nicht nochmal machen…

Nun muss man die Datei des Plugins bearbeiten. Suche in der Datei disclose-secret.php:
[PHP]
if (!empty($current_user))
return;

if (!isset($_SERVER[‚PHP_AUTH_USER‘]) || !isset($_SERVER[‚PHP_AUTH_PW‘])[/PHP]
Ersetze durch:
[PHP]if (!empty($current_user))
return;

if (isset($_SERVER[‚HTTP_AUTHORIZATION‘]))
{
$ha = base64_decode( substr($_SERVER[‚HTTP_AUTHORIZATION‘],6) );
list($_SERVER[‚PHP_AUTH_USER‘], $_SERVER[‚PHP_AUTH_PW‘]) = explode(‚:‘, $ha);
unset($ha);
}

if (!isset($_SERVER[‚PHP_AUTH_USER‘]) || !isset($_SERVER[‚PHP_AUTH_PW‘])[/PHP]
Hinweis: Ein Klick auf „PLAIN TEXT“ erleichtert das kopieren

Momentan überlege ich aufgrund der Bugs in Disclose-Secret im Zusammenhang mit WordPress 2.7 (Beim Bearbeiten von Posts gehen die Berechtigungen verloren, neue Posts können nicht mit Berechtigungen versehen werden (nur über direktes Einfügen in der Datenbank) und das Berechtigungspanel erscheint ÜBER der Eingabemaske) auf Role Scoper zu wechseln. Gleichzeitig würde ich mir damit den Role-Manager sparen, der ebenfalls viele seltsame Bugs hat. Blöderweise kann Role Scoper den RSS-Feed noch nicht schützen, aber das habe ich bereits als Feature beim Autor requested. Mal sehen, ob das vielleicht kommt. Dann steige ich auf jeden Fall um.

Veröffentlicht von

Uli

IT-Nerd und Admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.