Attachments Sicherheit

In this board you can talk about general questions about phpMyFAQ

Moderator: Thorsten

tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Guten Morgen

Vielen Dank, habe es gerade getestet.

Nun können auch uneingeloggte User Dateien herunterladen - das funktioniert.

Wenn sie aber den Link kennen, dann können unregistrierte User auch Dateien herunterladen, die sie nicht dürften. Ebenfalls können registrierte User aus einer Gruppe Dateien herunterladen, wozu sie nicht berechtig sind.

Gruss

thomas
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

das Szenario hatte ich vergessen, sorry, ich gucks mir an.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

der Check auf die Rechte des Users wurde nicht ausgewertet... doofer Fehler!

Hier der Fix: https://github.com/thorsten/phpMyFAQ/co ... d6966dd840

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Hallo

Vielen Dank für die schnelle Bearbeitung.

Leider ist es nun aber so, dass der Download überhaupt nicht mehr funktioniert.

Dies ist meine attachment.php Datei:

Gruss

thomas

Code: Select all

<?php
/**
 * Handle attachment downloads
 *
 * PHP Version 5.2
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * @category  phpMyFAQ
 * @package   Frontend
 * @author    Anatoliy Belsky <ab@php.net>
 * @copyright 2009-2012 phpMyFAQ Team
 * @license   http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1
 * @link      http://www.phpmyfaq.de
 * @since     2009-06-23
 */

if (!defined('IS_VALID_PHPMYFAQ')) {
    header('Location: http://' . $_SERVER['HTTP_HOST'].dirname($_SERVER['SCRIPT_NAME']));
    exit();
}

set_time_limit(0);

if (headers_sent()) {
    die();
}

$attachmentErrors = array();
$permission       = false;

// authenticate with session information
$user = PMF_User_CurrentUser::getFromSession($faqconfig->get('security.ipCheck'));
if (!$user instanceof PMF_User_CurrentUser) {
     $user = new PMF_User_CurrentUser(); // user not logged in -> empty user object
}

$id         = PMF_Filter::filterInput(INPUT_GET, 'id', FILTER_VALIDATE_INT);
$attachment = PMF_Attachment_Factory::create($id);

$userPermission  = $faq->getPermission('user', $attachment->getRecordId());
$groupPermission = $faq->getPermission('group', $attachment->getRecordId());

if (count($groupPermission) && in_array($groupPermission[0], $user->perm->getUserGroups($user->getUserId()))) {
    $permission = true;
}
if (in_array(-1, $userPermission) || in_array($user->getUserId(), $userPermission)) {
    $permission = true;
} else {
    $permission = false;
}

if ($attachment && $permission) {
    try {
        $att->rawOut();
        exit(0);
    } catch (Exception $e) {
        $attachmentErrors[] = $PMF_LANG['msgAttachmentInvalid'];
    }
} else {
    $attachmentErrors[] = $PMF_LANG['ad_att_none'];
}

// If we're here, there was an error with file download
$tpl->processBlock('writeContent', 'attachmentErrors', array('item' => implode('<br/>', $attachmentErrors)));
$tpl->processTemplate('writeContent', array());
$tpl->includeTemplate('writeContent', 'index');
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

ich brauch mehr Kaffee... hier der Fix: https://github.com/thorsten/phpMyFAQ/co ... 2d30e08049

Viele Grüße
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Hallo

Vielen Dank - der Download funktioniert wieder.

Das sicherheitstechnische Problem bleibt aber weiterhin bestehen.

Als nicht registrierter User kann ich mit dem Direktlink z.B. index.php?action=attachment&id=113 auf die Datei zugreifen, die eigentlich nur registrierten Nutzern vorbehalten ist. Ebenfalls können registrierte Nutzer Dateien herunterladen, die sie eigentlich nicht dürfen könnten...

Gruss

thomas
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

bei mir kommt ein nicht angemeldeter User einen Fehlerhinweis, wenn er ein Attachment eines Artikles auswählen will, welcher nur einem User oder einer Gruppe zugewiesen ist.

Wie sehen die Rechte für den betreffenden Artikel aus?

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Hallo

In dieser FAQ gibt es drei verschiedene Zugrifflevels.

Öffentlich ohne Login

Dann habe ich zwei Gruppen und zwei User erstellt. Ein User ist Mitglied beider Gruppen und der andere User Mitglied einer Gruppe.

Bei Gruppenrechte steht also z.B. : Eingeschränkter Zugriff für "Gruppe 1"
Und bei Benutzerrechte: Zugriff für alle Benutzer. (bei allen Artikeln steht das so - ich nutze ausschliesslich die Gruppenrechte)

Gruss

thomas
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

okay... und für welchen User mit welcher Berechtigung klappt es nicht?

Dann kann ich das mal nachspielen...

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Hallo

Der Download funktioniert überall - allein die Berechtigungen stimmen nicht.

Es gibt diesen Downloadlink: index.php?action=attachment&id=113

Dieser Link sollte eigentlich nur bei dem User funktionieren, der Mitglied von beiden Gruppen ist.

Dieser Link funktioniert aber auch beim User, der nur bei einer Gruppe Mitglied ist und der Link funktioniert sogar bei nicht registrierten Usern, die den Link kennen.

Gruss

thomas
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

dann bitte nochmal das hier testen: https://github.com/thorsten/phpMyFAQ/co ... 4036250bff

Danke für deine Hilfe!

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Hallo

Vielen Dank für deinen Support!

Nun ist es so:

Im öffentlichen Bereich (ohne Anmeldung) kann ich alle Anhänge - auch diejenigen, von denen ich keine Berechtigung habe - herunterladen.

Sobald ich eingeloggt bin - egal als welcher User - kommt beim Herunterladen diese Meldung:

"Keine Anhänge vorhanden"

Gruss

thomas
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

das kann nicht sein, ich hab den Code nun mehrfach schon gecheckt... kann ich mir deine FAQ mal ansehen oder einen Abzug der DB bekommen?

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
tass
Posts: 8
Joined: Wed Jan 04, 2012 6:12 pm

Re: Attachments Sicherheit

Post by tass »

Hallo

Aber klar doch. Sage mir einfach, was für dich am einfachsten ist und ich gebe dir die entsprechenden Daten oder Logins


Gruss

thomas
Thorsten
Posts: 15749
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Attachments Sicherheit

Post by Thorsten »

Hi,

schreib mir einfach ne Mail an thorsten AT phpmyfaq DOT de

Danke!

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Post Reply