Download nur Berechtigten User erlauben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Download nur Berechtigten User erlauben

    Hallo,

    Ich beschreibe mein Problem mal eben-
    Ich habe eine Rechnungssoftware in Einsatz und generell haben meine Kunden keinen Zugriff auf die PDF Rechnungen.
    Da ich dieses aber benötige habe ich die vorhandene .htaccess die den Zugriff verweigert gelöscht. Nun haben die Kunden Zugriff drauf aber es kann eben Kunde a auch die Rechnungen von Kunde b sehen bzw die PDF Dokumente einsehen.

    Um dieses zu verhindern habe ich mir folgendes überlegt.
    In diesem Ordner erstellte ich eine .htaccess mit folgendem Inhalt

    <Files *>
    Order Allow,Deny
    Deny from All
    </Files>

    Anschliessend ändere ich die URL zu den Rechnungen von .data/rechnungen/101.pdf auf console.php?rechnung=101

    Nach klick auf diesen Link wird die url console.php aufgerufen. In dieser wird Abgefragt ob die Rechnungsnummer 101 auch diesem kunden gehört. Wenn ja die PDF file per header() an den Browser senden. Wenn nicht Fehlermeldung.

    Ob dies letzendlich den direkten Aufruf verhindert muss ich noch Testen.

    Würdet ihr das genau so machen oder würdet ihr was anderes Bevorzugen.


    EDIT: Die BBCodes kann man nicht nutzen, diese werden erst garnicht eingeblendet.
  • Ja, ich würde diese auch über den header senden. Wenn du ganz sicher gehen möchtest, dann speicherst du die Rechnungen außerhalb deines Webroots. Ein Verzeichnis höher als htdocs(default) kommt man fast immer. Dann kann man gänzlich ausschliessen, dass von außerhalb zugegriffen wird.


    Baldur schrieb:

    EDIT: Die BBCodes kann man nicht nutzen, diese werden erst garnicht eingeblendet.
    Welches OS nutzt du?
  • Ein Verzeichnis höher als htdocs(default) kommt man fast immer

    Meine Seite hat i-mscp als background und ebenfalls gsales im einsatz. da ist dies nicht möglich alleine weil man in den gsales datein nix verändern kann, diese sind verschlüsselt.
    Dann werde ich wohl meine variante nutzen.


    EDIT: Ich nutze als OS Win7 + Chrome, sollte also mit den BBCodes möglich sein. Manuell eintippen klappt wie du an diesem Thread sehen kannst aber anklicken ist nicht drinne weil keine verfügbar sind
  • So,

    Habe die Nacht endlich mal was Zeit gefunden. Leider klappt dies nicht, er sendet die PDF File nicht sondern gibt mir komische Zeichen aus


    $orig_file = "./gsales/DATA/invoice/" . $id . ".pdf";
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename=' . $id . '.pdf');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($orig_file));
    ob_clean();
    flush();
    set_time_limit(0);
    readfile($orig_file);


    %PDF-1.3 3 0 obj <> endobj 4 0 obj <> stream x��V�r�F��+��*�JZ��[D�RK,�d��ʗ��$7"�0U<�o�Y��3rȀ �A�*T zv�g�g���J��'c��(����$�����Wp1d������.� ��d�I�K��@@�x�o2�7������j8�KS��Fٹ��rစ�s�������Woa����*�Gr� �ms\9UBO�™G�+e�#v�( ���f�4H���#��А��o�2��*M��n��Ł�#��0 A� ���������$$L �9I⚟*���5��~^���]�0&1�F�/�T���#?����~$��u�IB٪I��|M���IJd}cm ��\��I���G>�-U�j��a�-�3��?d�)Lf��M �v�"m���u~�A�B"j)��a��s��m: $#R��S��RUH�w��<��؍^~u��~������]�\��Cܑ��1a�!v]]h�2��J�


    Ich bitte um hilfe