![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem bo chcę zrobić tak aby tylko po autoryzacji możliwy był dostęp do plików graficznych po zalogowaniu tj. tak aby gdy ktoś wpisze odpowiedni adres do pliku graficznego np. Jan.kowalski.pl/galeria/1.jpg żeby zobaczył tylko informacje o tym że nie ma do niego dostępu.
-------------------- Apple iPhone bilety lotnicze
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
tak jak opisałeś ne da się, a raczej można tylko trzeba zamieszać w konfiguracji serwera, a wątpię byś miał dostęp do tego typu operacji.
Pozostaje substytut: po pierwsze umieszczasz sobie obrazki w jamiś tajnym katalogu nazwa może być wygenerowana np md5(), żeby nikt ci ne wyniuchał nazwy do tego niego. Zapisujesz pusty plik index.html to po to np. żeby ktoś dziwnym trafem ne przykumał nazwy katalogu i ne zrobił sobie listingu zawartość o ile serw mu na to pozwala, dorzucasz tam grafiki możesz je dodatkowo zabezpieczyć via jakiś hash w nazwie hash_nazwaPliku.(jpg|png|gif) piszesz sobie skrypt w którym wypluwasz obrazki na podstawie argumentu 'nazwaPliku', oczywiście w skrypcie autoryzujesz użytkownika, ustawiasz odpowiedni nagłówek MIME i readfile() ... -------------------- Inni dążą do doskonałości, ja nie muszę ;)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat piszesz sobie skrypt w którym wypluwasz obrazki na podstawie argumentu 'nazwaPliku', oczywiście w skrypcie autoryzujesz użytkownika, ustawiasz odpowiedni nagłówek MIME i readfile() ...
robiłeś cos takiego już? możesz jakiś praktyczny przykład podać? -------------------- Apple iPhone bilety lotnicze
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
[php:1:7f343e0380]<?php
require('auth.inc.php'); $photo = 'nazwa_tajnego_katalogu/'; $photo = $photo . $_GET['name']; header('Content-type: image/jpeg'); header('Content-transfer-encoding: binary'); header('Content-length: '. filesize($photo)); readfile($photo); ?>[/php:1:7f343e0380] oczywiście do dopieszczenia np. czy est argument name, ewentualnie jakaś wartość domyślna, czy plik istnieje, no i odpowiedni nagłówek Content-type: image/(jpeg|gif|png) -------------------- Inni dążą do doskonałości, ja nie muszę ;)
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 15.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
można jeszcze fotki przechowywać np w mysql
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze może z inaczej napisze dokładnie o co mi chodzi. Mianowicie chce utworzyć płatną galerie zdjęć, korzystam z usług firmy allpay.pl oni tam mają taki prosty skrypt:
sprawdzacz.php [php:1:6b3b37bef8]<?php # skrypt sprawdzający ważność kodu if (!isset($_COOKIE['ActiveCode'])) { print "time out<BR>"; unset($_COOKIE[session_name()]); exit; } ?>[/php:1:6b3b37bef8] sprawdz.php [php:1:6b3b37bef8]<?php $id = 1234; # numer ID zarejestrowanego klienta $code = "xyz"; # nazwa konta z bezobsługowymi kodami $type = "c1"; # typ konta: C1 - 8 znakowy kod bezobsługowy # typ konta: sms dla sprawdzania SMSow $handle = fopen("http://allpay.pl/check_code.php?id=".$id."&code=".$code."&check=".$check."&type=".$type."", 'r'); $status = fgets($handle, 8); $czas_zycia = fgets($handle, 24); fclose($handle); $czas_zycia = rtrim($czas_zycia); if ($status == 0) {print "Kod niepoprawny."; exit;} # gdy kod niepoprawny else { # gdy kod poprawny: if (!isset($_COOKIE['ActiveCode'])) { setcookie('ActiveCode',1, time()+$czas_zycia); } else { setcookie('ActiveCode',0, time()+2, "/"); setcookie('ActiveCode',1, time()+$czas_zycia, "/"); } header("Location: main.php"); # włączenie strony głównej } ?>[/php:1:6b3b37bef8] main.php [php:1:6b3b37bef8]<?php include "sprawdzacz.php"; #sprawdzenie, czy klient ma prawo jeszcze przegladac strony z czesci platnej ?> <A HREF=main.php>link</A> [/php:1:6b3b37bef8] index.html [xml:1:6b3b37bef8]<HTML> <HEAD><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>Strona testowa</TITLE></HEAD> <BODY> <FORM ACTION="sprawdz.php" METHOD=POST> Aby wejść do płatnej części serwisu, musisz wprowadzić kod: <INPUT TYPE=TEXT NAME="check" SIZE=10 MAXLENGTH=8><BR> <BR> <CENTER><INPUT TYPE=SUBMIT VALUE="Wejście"></CENTER> </FORM> </HTML> [/xml:1:6b3b37bef8] Klient dokonuje opłaty kartą kredytową i otrzymuje kod który wpisuje na stronie aby wejść do części płatnej. Autoryzacja odbywa się za pośrednictwem serwera allpay.pl który weryfikuje kod dostępu czy jest poprawny czy nie i czy jest aktualny. Jaki jest mój problem? A no taki, że chce aby nie tylko sam html / php był zabezpieczony przed wpisaniem poprawnego adresu (dodając w pliku html <FORM ACTION="sprawdz.php" METHOD=POST>), ale i obrazki / zdjęcia bo przecież każdy może sobie sprawdzić właściwości takiego obrazka i wpisując odpowiedni link ściągnąć go za darmo. Chciałbym w oparciu o tą autoryzacje w prosty sposób uzyskać dobre zabezpieczenie zdjęć przed potencjalnymi złodziejami. -------------------- Apple iPhone bilety lotnicze
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
wszystko masz podane na tacy wystarczy trochę pomyśleć
photo.php [php:1:8aa2a93805]<?php if (!isset($_COOKIE['ActiveCode'])) { unset($_COOKIE[session_name()]); $name = 'odmowa.dostepu.jpg'; } else { if (isset(isset($_GET['name']))) { $name = $_GET['name']; } else { $name = 'domyslny.jpg'; } } $photo_dir = 'nazwa_tajnego_katalogu/'; $name = $photo_dir . $name; header('Content-type: image/jpeg'); header('Content-transfer-encoding: binary'); header('Content-length: '. filesize($name)); readfile($name); ?>[/php:1:8aa2a93805] + uwagi z poprzedniego post'u -------------------- Inni dążą do doskonałości, ja nie muszę ;)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 13:27 |