İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Site dışından download yasak

pembekedi

0
İyinet Üyesi
Katılım
3 Şubat 2005
Mesajlar
1,607
Reaction score
1
Konum
Neverland
bu php ile nasıl oluyo arkadaşlar? dosyalarımın başka siteden link verilerek çekilmesini istemiyorum. benim sitemden tıklanınca çekilsin sadece?
 
M

mfk_1868

Misafir
cpanel varsa panelde hotlink var ordan ayarlarsın. tam bir koruması yok aslında.
 

uyuz

0
İyinet Üyesi
Katılım
31 Aralık 2003
Mesajlar
2,515
Reaction score
0
o zaman şöyle yapacaksın
bir database oluşturup dosya isimleri ve idlerin olduğu bir tablo yaratacaksın her dosya için bir id olacak
sonra indir.php yazacaksın. referera bakacak eğer senin domainden geliyorsa $id değişkenine karşılık gelen dosyayı bulup oraya yonlendirecek. forumda vardır bir ara yoksa ben yazarım scripti.
 

Alobar

0
İyinet Üyesi
Katılım
4 Mart 2005
Mesajlar
314
Reaction score
0
aşagıdaki kod bu kaynagı kesinlikle gizler ama sadece IE ile indirilir flash get çalışmaz.

PHP:
<?php

ini_set('display_errors', 0); 
error_reporting(0); 
ini_set('session.cache_limiter', '');
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header("Content-Description: File Transfer"); 
header("Content-Type: application/force-download"); 
header("Content-Length: ".filesize("dosyanını tamadresi-home2/domain/pblib_html/dosya.zip-gibiburası dosyaboyutunuokur"));
header("Content-Disposition: disposition-type=attachment; filename=".Dosyaadı-degişken kullanırsan .$degişken-);

readfile("dosyanını tamadresi-home2/domain/publik_html/dosya.zip-gibi");
?>
 

pembekedi

0
İyinet Üyesi
Katılım
3 Şubat 2005
Mesajlar
1,607
Reaction score
1
Konum
Neverland
şimdi bunu kulanmak için her .zip dosyasına bi sayfa yapıp mı koyucam bunu? dosya adı yazdığına göre orda?
 

Alobar

0
İyinet Üyesi
Katılım
4 Mart 2005
Mesajlar
314
Reaction score
0
pembekedi' Alıntı:
şimdi bunu kulanmak için her .zip dosyasına bi sayfa yapıp mı koyucam bunu? dosya adı yazdığına göre orda?
bak biraz uzun olacak (çünkü bu tam güvenlikli hali db kullancan) ama tam anlatım şu:
önce kodları verelim:
1. veri tabanına baglantı için veri.php uygun yerlrei sen doldur.
PHP:
<?

function dbconnect() {

$dbhost='';   //mysql server adresi genelde default olarak localhost olarak geçer
$dbuser='';    //mysql kullanıcı adı.ilk olarak mysql u başlattığınızde belirlediğiniz username
$dbpass='';       //İlk olarak mysql u başlattığınızde belirlediğiniz username
$dbname='';        //database adı.

 $connection = @mysql_connect($dbhost, $dbuser, $dbpass)
  or die ("Database ile bağlantı kurulamadı!!");

 $db = @mysql_select_db($dbname, $connection)
  or die ("Database ile bağlantı kurulamadı!!");
}
function MakePass($length)
{
 $possible = "0123456789".
             "abcdefghijklmnopqrstuvwxyz".
             "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 $str = "";
 while(strlen($str) < $length)
 {
  $str .= substr($possible, (rand() % strlen($possible)), 1);
 }
 return($str);
}




?>

2. bu senin dosyayı indir linkinin bulundugu sayfa için biz indir.php diyelim
yalnız bu dosyayı su şekilde kullanmalısın inecek dosya id si db de ne ise örnegin 5 ise indir.php?id=5 gibi kullancan.
burda ilk bölümde bir geçici şifre oluşturuluyor. nedenini sonra açıklarım. sonra dosya adı veri tabanından okunup şifre ile birlikte db de bir tabloya yazılıyor.
sonra dosya indir linkine tıklanılınca şifrei downloadı başlatacak scripte gidiyor. İşin güzel yanı bu script download edilecek dosya adı ile yada sabit bi sayı ile çalışmıyor sürekli degişen bi şifre ile çalışıyor.
PHP:
<?php 

$min=16; // minimum length of password
$max=35; // maximum length of password
$pwd=""; // to store generated password

for($i=0;$i<rand($min,$max);$i++)
{
$num=rand(48,122);

  if(($num > 97 && $num < 122))
  {
      $pwd.=chr($num);
  }

  else if(($num > 65 && $num < 90))
  {
      $pwd.=chr($num);
  }

  else if(($num >48 && $num < 57))
  {
      $pwd.=chr($num);
  }

  else if($num==95)
  {
      $pwd.=chr($num);
  }

  else
  {
      $i--;
  }
}


	include("./veri.php");


dbconnect();

$sonuc = mysql_query("SELECT * FROM `tablonunadı` WHERE id = '$id'"); // $dosyaid dediğimiz değişken senin veri tabanınındakı dosya id in sen değişkene ne dediysen onu yazarsın
$myrow = mysql_fetch_array($sonuc); 
$dosyaadi = $myrow["id"]; // dosya adını okuduk

$sqldf = "INSERT INTO gecici_table VALUES(lisanssız, '$pwd', '$dosyaadi')"; // dosya adını şifreyle kaydettik db kodu en altta verdim
$sorguyu_uygula = mysql_query($sqldf);


echo "<a href=\"http://www.domain.com/file.php?pwd=$pwd\">Download linki bu</a>"; 


?>

3. artık dosya iniyor file.php
burada yapılan ise db ye bağlanıp şifrenin ifade ettigi dosayadı alınıyor sonra şifre ve dosya adı geçiçi tablodan siliniyorki aynı şifre ile tekrar kullanılmasın.
sonra download başlıyor.
PHP:
<?php

 ini_set('display_errors', 0); 
error_reporting(0); 

include("./veri.php");
dbconnect();


$sonuc = mysql_query("SELECT * FROM `gecici_table` WHERE sifre = '$pwd'"); 
$myrow = mysql_fetch_array($sonuc); 
$dosyaadi = $myrow["dosyaadi"];
$query = "DELETE FROM gecici_table WHERE sifre = ('$pwd')";
$result = mysql_query($query);

ini_set('session.cache_limiter', '');
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header("Content-Description: File Transfer"); 
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize("./dosyalarınbulunduguklasörüntamyolu/$dosyaadi"));
header("Content-Disposition: disposition-type=attachment; filename=".$dosyaadi);
readfile("./dosyalarınbulunduguklasörüntamyolu/$dosyaadi");
?>

son geçici tablo:
PHP:
CREATE TABLE `gecici_table` (
  `user_id` int(11) NOT lisanssız auto_increment,
  `sifre` varchar(255) NOT lisanssız default '',
  `dosyaadi` varchar(255) NOT lisanssız default '',
  PRIMARY KEY  (`user_id`),
  KEY `uid` (`user_id`),
  KEY `uname` (`dosyaadi`),
  KEY `sayi` (`kategori`),
) ;


bi kaç ıvır zıvır daha var kullanımla ilğili ama saat 24 e geliyor kafam doldu. sonra devam ederim...
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst