Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Wyświetlanie strony tylko dla wybranych
szymek001
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


Jak zrobić by strona x.php była wyświetlona tylko dla tych:

1) których referrel (".$HTTP_REFERER." ) = moja.strona.pl
lub
2) których dane przesłane np. metodą POST = wyswietl

Prosiłbym o jakieś wskazówki jak zrobić pożądany prze zemnie efekt.
Go to the top of the page
+Quote Post
Maxik
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if($_SERVER['HTTP_REFERER']=='moja.strona.pl' or $_POST['nazwa']=='wyswietl') {
  3. //Instrukcje jeśli referer moja.strona.pl
  4. } else {
  5. echo "Błąd, nie możesz tu wejść";
  6. }
  7. ?>


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
szymek001
post
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


a jak mógłbym zrobić aby było uniwersalnie: http://www.moja.strona.pl/* - dowolna podstrona i http:// z www i bez www brane tak samo pod uwage? W .htaccess można to uzyskać np. przez (.+\.)? (wyczytane z artykułu na temat hotlinkowania: RewriteCond %{HTTP_REFERER} !^http://(.+\.)?strona\.pl/ [NC] )

Gdy dodam po domenie '/\|(.*?)\|/' to nie działa (korzystam tylko z referer)

Ten post edytował szymek001 4.08.2008, 18:44:10
Go to the top of the page
+Quote Post
Maxik
post
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Zamiast się męczyć daj jeszcze jedno or i sprawdzenie z www. na początku adresu, ewentualnie wyrażeniem regularnym i ereg


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
szymek001
post
Post #5





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


Ale co zrobić, by zamiast pisać podstrony brany był dowolny ciąg który jest po moja.strona.pl ?
Go to the top of the page
+Quote Post
-gox-
post
Post #6





Goście







sprawdzanie po refererze hmm, nie zapomnij wyswietlic odpowiedniego komunikatu, czesc internautow celowo nie zostawia refererow... wiec informacja ze walidacja jest przeprowadzana wlasnie na podstawie przekierowania pozwoli uniknac sytuacji, w ktorej osoba ktora dostep uzyskac powinna go nie otrzyma i nie bedzie wiedziec dlaczego smile.gif
sam prowadzac serwer www o odwiedzalnosci >3k/day okreslic odsetek niereferujacych lolkow na ok, 5-10%.

pozdro600
Go to the top of the page
+Quote Post
-gox-
post
Post #7





Goście







  1. <?php
  2. $referer = $_SERVER['HTTP_REFERER'];
  3. if (!preg_match('#^www.mojastrona.pl/(.*?)$#', $referer))
  4. die('niepoprawny naglowek refere, sprawdz czy twoja przegladarka blablabla');
  5. ?>
Go to the top of the page
+Quote Post
szymek001
post
Post #8





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


jeśli do skryptu napisanego w 2 poscie zamienię drugą linie na
  1. <?php
  2. if($_SERVER['HTTP_REFERER']=='#^www.mojastrona.pl/(.*?)$#')
  3. ?>
to nie działa.

-gox- - no wiem że referer nawet firewall czy antywiry mogą blokować, jednak nie potrafię wysłać danych przez POST nie tworząc formularza. Wiem, że można by zrobić ukryty formularz i w js go odpalić, ale to trochę zamieszania..
Go to the top of the page
+Quote Post
-gox-
post
Post #9





Goście







juz nawet nie firewall czy antivir, po prostu normalnie wylaczam sobie ta opcje w przegladarce bo nie lubie byc szpiegowanym... tongue.gif

autopost w js to nic specjalnie trudnego, masz przyklady w sieci jak nie potrafisz z palca napisac...
te # (.*?) nie dzialaja 'od tak' musisz uzyc ich w funkcji preg_match() tongue.gif

a napisz co chcesz ukrywac i przed kim, bo jak bys sie nie staral to i tak mozna tego typu zabezpieczenia latfiutko obejsc... moze zapoponujemy cos powazeniejszego, po prostu napisz co chcesz zrobic..
Go to the top of the page
+Quote Post
szymek001
post
Post #10





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


mam forum na domenie A i mam postawiony download na domenie B. Pliki z downloadu wyświetlają się tak: B/download.php?file=4, plik download.php mogę edytować dowolnie. Chcąc zabronoć hotlinkowania na innych stronach chciałbym by linki do downloadu działały tylko z domeny A.
Go to the top of the page
+Quote Post
-gox-
post
Post #11





Goście







a jakie wielkosci maxymalne osiagaja te pliki?
Go to the top of the page
+Quote Post
szymek001
post
Post #12





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


nie więcej niż 10mb, ale co ma wielkość plików ? smile.gif
Go to the top of the page
+Quote Post
-gox-
post
Post #13





Goście







a przeanalizuj sobie ten kod i pomysl czy takie rozwiazanie ci odpowiada smile.gif


plik download.php, przykladowe wywolanie: ?file=4&$tooken=sha1_hash
  1. <?php
  2. $tooken_in = trim($_GET['tooken']);
  3. if (_check_tooken($tooken_in) == true)
  4. echo readfile('./plik4.rar') #zezwalamy na pobranie :) 
  5.  
  6. function _check_tooken($tooken_in='') {
  7. if (!empty($tooken_in)) {
  8. for($i=-30;$i<30;$i++) {
  9. if ($tooken_in == sha1($i+time()))
  10. return true;
  11. }
  12. }
  13. return false;
  14. }
  15. ?>
Go to the top of the page
+Quote Post
szymek001
post
Post #14





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


hmm.. nie bardzo to rozumię..
w .htaccess mam:
Kod
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

<Files *.mfh>
order allow,deny
deny from all
</Files>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ download.php?file=$1 [L]


ale nie wiem jak do tego wrzucić
Kod
RewriteCond %{HTTP_REFERER} !^http://(.+.)?moja.strona.pl/ [NC]
RewriteRule .*.(jpe?g|gif|bmp|png|zip|rar)$ /images/nohotlink.png [L]


by download.php?file=$1 wyświetlało się tylko tym którzy mają referel = moja.strona.pl

Ten post edytował szymek001 4.08.2008, 21:08:46
Go to the top of the page
+Quote Post
-gox-
post
Post #15





Goście







Generalnie chodzi o to, ze link generowany na domenie A jest wazny przez 30 sekund wstecz i 30 sekund na przod... oczywiscie mozesz sobie ten czas dowolnie zmienic, chodzi o to, ze aby sciagnac plik trzeba wygenerowac link w domenie A i w niedlugim czasnie na niego kliknac...
wada tego rozwiazania jest to, ze w takiej postaci jest to latwo obejsc, ratujesz sie tym ze nikt nie zna twojego kodu, mozesz tez do tego sha1($i+time()) dolozyc jakis strasznie dlugi tajemny ciag znakow, wtedy jest to praktycznie nie do przeskoczenia smile.gif oczywiscie skrypt generujacy link musi taki ciag znakow rowniez znac...
Go to the top of the page
+Quote Post
szymek001
post
Post #16





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


Cytat(gox @ 4.08.2008, 18:54:26 ) *
  1. <?php
  2. $referer = $_SERVER['HTTP_REFERER'];
  3. if (!preg_match('#^www.mojastrona.pl/(.*?)$#', $referer))
  4. die('niepoprawny naglowek refere, sprawdz czy twoja przegladarka blablabla');
  5. ?>


to było by ok, tylko nie wiedzieć czemu nie działa. Tzn. zawsze mam zwracany komunikat o niepoprawnym nagłównku, a strone zamieniłem na swoją domenę.
Go to the top of the page
+Quote Post
-gox-
post
Post #17





Goście







Bosh, zostaw to unreliable referer, to sie nadaje to sprawdzenia kto cie linkuje i z jakich fraz z G przylaza, a nie do takich rzeczy!, co ci sie nie podoba w tej koncepcji tookena czasowego?...
Go to the top of the page
+Quote Post
-gox-
post
Post #18





Goście







patrz, robisz takie cos:

skrypt generujacy link na forum w domenie A:
  1. <?php
  2. $garb = 'superTajnyINieosiagalnyCiagZnakowWCeluUtrudnieniaZbrutalforcowaniaHashuSha1:)';
  3. $tooken = sha1(time().$garb);
  4. echo './download.php?file=4&t='.$tooken;
  5. ?>



skrypt w domenie B sprawdzajacy tooken i pozwalajacy (lub nie) sciagnac plik:
  1. <?php
  2. $tooken = trim($_GET['t']);
  3. if (_check_tooken($tooken) == true) {
  4. $mime = mime_content_type('./plik4.rar');
  5. $rozmiar = filesize('./plik4.rar');
  6. header('Hmmm, to juz sobie zrob sam :)');
  7. echo readfile('./plik4.rar');
  8. }
  9. die('No niestety tooken jest zly...');
  10.  
  11. function _check_tooken($tooken='') {
  12. $garb = 'superTajnyINieosiagalnyCiagZnakowWCeluUtrudnieniaZbrutalforcowaniaHashuSha1:)';
  13. if (!empty($tooken)) {
  14. for($i='-30';$i<1200;$i++) { # 1200 sek. = 20 minut, przez tyle czasu tooken jest aktywny...
  15. if ($tooken == sha1($i+time().$garb))
  16. return true;
  17. }
  18. }
  19. return false;
  20. }
  21. ?>
Go to the top of the page
+Quote Post
szymek001
post
Post #19





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


Nie pasuje mi to, ze korzystam z gotowego skryptu downloadu (http://www.galaxyscripts.com/) i nie mogę ot tak sobie tego dodać żeby wszystko było ok.. sad.gif
Go to the top of the page
+Quote Post
-gox-
post
Post #20





Goście







Jak nie moge to przez noge, napisz ze nie potrafisz, a nie ze nie mozesz... chociaz w sumie na jedno wychodzi smile.gif
bezpieczenstwo tego typu skryptow jest zerowe, zerknij sobie co zwraca milw0rm po wpisaniu mini file host... po prostu zal, przylookam sie tej wersji jak znajde chwile...
lyknij manie pisania wszystkiego samodzielnie przynajmniej jak ktos Ci sie wbije bedziesz winic tylko sam siebie, no i zawsze black-box to black-box smile.gif

wlasnie tak sobie przegladam kod no i... jego jakosc jest bardzo niska, szczerze odradzam korzystanie z tej... nazwijmy to aplikacji...

skad wy do jasnej ciasnej wykopujecie takie 'skrypty'!?!

posmiejmy sie razem:
http://www.galaxyscripts.com/MFH%201.2.1%2...y%20Fix%202.zip
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:25