• 03-06-2014, 03:18:31
    #1
    @saintx; in yayınlamış olduğu bir lisanslama sınıfı vardı,
    aşağıdaki gibi ancak lisans anahtarı dogru oldugu halde hata veriyor. bu konuda yardımcı olur musunuz?
    include('lisans.php');
    new checklicense('http://127.0.0.1:80/lisans.txt', 10);
     <?php
        
        class checklicense
        {
            
            protected $cl_license_server;
            protected $cl_ip_address;
            protected $cl_product_key;
            protected $cl_license_array;
            
            /* önbellekleme değişkenleri */
            
            protected $cl_cache_time;
            protected $cl_cache_file;
            
            public function __construct($license_server, $cache_time)
            {
                $this->cl_ip_address        = getenv('HTTP_HOST');
                $this->cl_product_key        = null;
                $this->cl_license_server    = $license_server;
                $this->cl_cache_time        = $cache_time;
                $this->cl_cache_file        = 'cache/'.md5($this->cl_license_server.$this->cl_ip_address).'.txt';
                /* Çalıştırmalar */
                //$this->_check_ip_address();
                $this->_create_product_key();
                if( $this->_is_available_cache() != true )
                {
                    $this->_write_cache($this->cl_cache_file, $this->_get_license_file());
                    $this->_check_license($this->_read_cache($this->cl_cache_file));
                }
                else
                {
                    $this->_check_license($this->_read_cache($this->cl_cache_file));
                }
            }
            
            /* IP Kontrolleri */
            
            protected function _check_ip_address()
            {
                if( ! is_numeric(substr($this->cl_ip_address, 0, 3)) )
                {
                    if( substr($this->cl_ip_address, 0, 4) == 'www.' )
                    {
                        $this->cl_ip_address = substr($this->cl_ip_address, 4);
                    }
                }
            }
            
            /* Ürün anahtarı oluşturma ve kontroller */
            
            protected function _create_product_key()
            {
    		$this->cl_product_key = wordwrap(strtoupper(md5(sha1(sha1($this->cl_product_key)))), 4, '-', true); 
    		 echo $this->cl_product_key.'<br>';
            
            }
            
            protected function _check_license(array $data)
            {
                if(!in_array($this->cl_product_key, $data) )
                {
                    die(getenv('HTTP_HOST').' isimli sitenizin lisansı bulunmamaktadır.');
                    exit;
                }
            }
            
            /* Uzak sunucudan dosya okuma işlemleri */
            
            protected function _get_license_file()
            {
                if( function_exists('file') )
                {
                    $file = file($this->cl_license_server, FILE_IGNORE_NEW_LINES);
                    $data = array();
                    foreach($file as $key => $value)
                    {
                        $data[$key] = rtrim($value, '\r\n');
                    }
                    return $data;
                }
            }
            
            /* Önbellekleme Fonksiyonları */
            
            protected function _is_available_cache()
            {
                $this->cl_cache_file = 'cache/'.md5($this->cl_license_server.$this->cl_ip_address).'.txt';
                if( ! file_exists($this->cl_cache_file) ) return false;
                $this->cl_cache_time = $this->cl_cache_time * 60;
                if( time() - filemtime($this->cl_cache_file) > $this->cl_cache_time )
                {
                    unlink($this->cl_cache_file);
                    return false;
                }
                return true;
            }
            
            protected function _write_cache($path, $data)
            {
                $handler = fopen($path, 'a');
                fwrite($handler, serialize($data));
                fclose($handler);
            }
            
            protected function _read_cache($path)
            {
                $data = unserialize(file_get_contents($path));
                return $data;
            }
        }
        
    ?>
  • 03-06-2014, 16:32:32
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Posta kutunuz dolu, musait oldugumda yenisini yazip konuya ekleyemeye calisirim. Klavyem ingilizce oldugu icin turkce karakterleri kullanamiyorum. Simdiden ozur dilerim.
  • 04-06-2014, 10:27:06
    #3
    Ek bilgi : güzel düşünülmüş ama malesef bu lisanslama tek başına kesinlikle yeterli değil. Bu tarz lisanslama mekanizmalarının yanına ek güvenlik koymazsanız 10 dakika içinde sistemi çalıştırırlar.
  • 04-06-2014, 10:43:06
    #4
    Big_Turk adlı üyeden alıntı: mesajı görüntüle
    Ek bilgi : güzel düşünülmüş ama malesef bu lisanslama tek başına kesinlikle yeterli değil. Bu tarz lisanslama mekanizmalarının yanına ek güvenlik koymazsanız 10 dakika içinde sistemi çalıştırırlar.
    Şuan yaptığım bir yazılım var. Lisans sorgusu için yapılan kodları functions.php içinde yapıp buradan bilgileri kontrol ediyorum. Yazılımın birçok yerinde fonksiyon kullanıyorum ve ioncube ile şifreleyeceğim. Sizce yeterli olur mu?

    Ayrıca yazılımım local sunucuda çalıştığı için bir adsl static ip üzerinden erişim bir de local de sunucuya benim verdiğim ip üzerinden erişim var. Örneğin 192.168.1.1 local ip 88.999.77.66 da dış ip. Her 2 ip üzerinden erişim sağlanabiliyor. Bunun için tek kontrol mantığını kuramadım mesela. Önce birini sonra birini kontrol ediyorum ikisinden biri sağlıyorsa çalıştır diyorum ama bana pek sağlıklı gelmiyor.
  • 04-06-2014, 10:49:23
    #5
    loc adlı üyeden alıntı: mesajı görüntüle
    Şuan yaptığım bir yazılım var. Lisans sorgusu için yapılan kodları functions.php içinde yapıp buradan bilgileri kontrol ediyorum. Yazılımın birçok yerinde fonksiyon kullanıyorum ve ioncube ile şifreleyeceğim. Sizce yeterli olur mu?

    Ayrıca yazılımım local sunucuda çalıştığı için bir adsl static ip üzerinden erişim bir de local de sunucuya benim verdiğim ip üzerinden erişim var. Örneğin 192.168.1.1 local ip 88.999.77.66 da dış ip. Her 2 ip üzerinden erişim sağlanabiliyor. Bunun için tek kontrol mantığını kuramadım mesela. Önce birini sonra birini kontrol ediyorum ikisinden biri sağlıyorsa çalıştır diyorum ama bana pek sağlıklı gelmiyor.
    İnşallah yazılımınz için sarfettiğiniz emekleri alırsınız ama malesef ki sadece ioncube kısmına güvenlik bırakırsanız hiç bir güvenlik almamaktan bence pek bir farkı yok. Bunun nedeni ioncube artık geçerliliğini yitirdi ve çok kolay decode edebiliyorlar.

    İp içinde söylediğiniz işlem güzel düşünülmüş ama local kısmını anlayamadım ? eğer her gelen 192.168.1.1 ip'sini kabul ederseniz bunu ağ bağlantılarından düzenleyip açılabilir ( burdaki ip örnek olabilir yani bu ip adresini sadece siz bilebilirsiniz ama yinede sağlıklı değil )

    Açık açık şunu yaparsanız kıramazlar denilebilecek malesef bir yöntem yok ama şu anda yapabileceğiniz en iyi şey onların gözlüğünden bakıp güvenlik önlemlerini ben bu sistemi nasıl kırarım şeklinde düşünmek. Yapacağınız işlemleri geriye sardığınız da çok kolay bir yöntem çıkıyorsa bu güvenlik kesinlikle yeterli değil..
  • 04-06-2014, 10:54:50
    #6
    Üyeliği durduruldu
    loc adlı üyeden alıntı: mesajı görüntüle
    Şuan yaptığım bir yazılım var. Lisans sorgusu için yapılan kodları functions.php içinde yapıp buradan bilgileri kontrol ediyorum. Yazılımın birçok yerinde fonksiyon kullanıyorum ve ioncube ile şifreleyeceğim. Sizce yeterli olur mu?

    Ayrıca yazılımım local sunucuda çalıştığı için bir adsl static ip üzerinden erişim bir de local de sunucuya benim verdiğim ip üzerinden erişim var. Örneğin 192.168.1.1 local ip 88.999.77.66 da dış ip. Her 2 ip üzerinden erişim sağlanabiliyor. Bunun için tek kontrol mantığını kuramadım mesela. Önce birini sonra birini kontrol ediyorum ikisinden biri sağlıyorsa çalıştır diyorum ama bana pek sağlıklı gelmiyor.
    Bu iş için artık ioncubenin yeterli olduğunu düşünmüyorum karışık fonksiyonlama teknikleri geliştirilmeli çorbalama mantığı lazım açıkacsı.
  • 04-06-2014, 11:07:14
    #7
    Big_Turk adlı üyeden alıntı: mesajı görüntüle
    İnşallah yazılımınz için sarfettiğiniz emekleri alırsınız ama malesef ki sadece ioncube kısmına güvenlik bırakırsanız hiç bir güvenlik almamaktan bence pek bir farkı yok. Bunun nedeni ioncube artık geçerliliğini yitirdi ve çok kolay decode edebiliyorlar.

    İp içinde söylediğiniz işlem güzel düşünülmüş ama local kısmını anlayamadım ? eğer her gelen 192.168.1.1 ip'sini kabul ederseniz bunu ağ bağlantılarından düzenleyip açılabilir ( burdaki ip örnek olabilir yani bu ip adresini sadece siz bilebilirsiniz ama yinede sağlıklı değil )

    Açık açık şunu yaparsanız kıramazlar denilebilecek malesef bir yöntem yok ama şu anda yapabileceğiniz en iyi şey onların gözlüğünden bakıp güvenlik önlemlerini ben bu sistemi nasıl kırarım şeklinde düşünmek. Yapacağınız işlemleri geriye sardığınız da çok kolay bir yöntem çıkıyorsa bu güvenlik kesinlikle yeterli değil..
    Yazılım için sarf ettiğim emeğin karşılığını patronlar alıyor çok güzel de benim aldığım pek söylenemez ))

    Sistemi şöyle anlatayım. Bina içinde bir adet linux sunucu var. Yazılım burada localhost üzerinde çalışıyor. Haliyle bu bilgisayara elle ip vermem gerek. Örneğin 192.168.1.1 ip adresini verdim. Modem üzerinden gelen hattı sadece bu server kullanıyor yani başka bir cihazın bağlanma durumu söz konusu değil. Modemden gelen static ip yi de nat yapıp 192.168.1.1'e yönlendiriyorum. Yani static ip ile girmiş olan kişi aslında 192.168.1.1 nolu local ip'ye bağlanıyor. Ama dışarıdan static ip ile erişim verirken yazılımın kısa yolu sunucu içinde 192.168.1.1 olarak açılıyor. Dolayısıyla adres satırından ip'yi alarak lisans kontrolü yaptığım için bu sefer 2 lisans işlemi yapmam gerekiyor. Bunlarda herhangi bir problem yaşamıyorum lakin ioncube için söyledikleriniz korkuttu beni çünkü muhasebeye bu programın satın alınması için gerekli talimatları verdim. Sizce ne yapmalıyım? Bu yazılımı korumak için bildiğiniz daha iyi bir yol var mı?
  • 04-06-2014, 11:16:46
    #8
    loc adlı üyeden alıntı: mesajı görüntüle
    Yazılım için sarf ettiğim emeğin karşılığını patronlar alıyor çok güzel de benim aldığım pek söylenemez ))

    Sistemi şöyle anlatayım. Bina içinde bir adet linux sunucu var. Yazılım burada localhost üzerinde çalışıyor. Haliyle bu bilgisayara elle ip vermem gerek. Örneğin 192.168.1.1 ip adresini verdim. Modem üzerinden gelen hattı sadece bu server kullanıyor yani başka bir cihazın bağlanma durumu söz konusu değil. Modemden gelen static ip yi de nat yapıp 192.168.1.1'e yönlendiriyorum. Yani static ip ile girmiş olan kişi aslında 192.168.1.1 nolu local ip'ye bağlanıyor. Ama dışarıdan static ip ile erişim verirken yazılımın kısa yolu sunucu içinde 192.168.1.1 olarak açılıyor. Dolayısıyla adres satırından ip'yi alarak lisans kontrolü yaptığım için bu sefer 2 lisans işlemi yapmam gerekiyor. Bunlarda herhangi bir problem yaşamıyorum lakin ioncube için söyledikleriniz korkuttu beni çünkü muhasebeye bu programın satın alınması için gerekli talimatları verdim. Sizce ne yapmalıyım? Bu yazılımı korumak için bildiğiniz daha iyi bir yol var mı?
    işin içine local ip girince zaten tahmin etmiştim paket program tarzı bir uygulamanızın olduğunu. Sizin işiniz bizlere göre çok daha kolay zira ,her sunucuda çalışmak zorunda olan bir program yazmıyorsunuz. En iyi tavsiyem hiç ioncube ile uğraşmadan bir linux eklentisi yazdırmanız olur ioncube yerine bu eklenti vasıtasıyla güvenliğinizi alırsınız. Programın kurulacağı sunuculara da bu eklentiyi kurarsanız hiç kimse tutupta istediği sunucuda çalıştıramaz. eklenti içerisine alacağınız bir güvenlik komutu ilede sorun %95 oranında çözülmüş olur.

    Yetkisiz kullanımlar içinde sizin ip kontrolünüz fazlasıyla yeterli olur. İoncube ile hiç uğraşmamanızı tavsiye ederim zaten 300 $ civarında şu anda program , 500-600 tl ona vermektense size özel bir eklenti ile kimsenin uğraşmayacağı bir şifreleme çok dha mantıklı olur..
  • 04-06-2014, 11:29:02
    #9
    Big_Turk adlı üyeden alıntı: mesajı görüntüle
    işin içine local ip girince zaten tahmin etmiştim paket program tarzı bir uygulamanızın olduğunu. Sizin işiniz bizlere göre çok daha kolay zira ,her sunucuda çalışmak zorunda olan bir program yazmıyorsunuz. En iyi tavsiyem hiç ioncube ile uğraşmadan bir linux eklentisi yazdırmanız olur ioncube yerine bu eklenti vasıtasıyla güvenliğinizi alırsınız. Programın kurulacağı sunuculara da bu eklentiyi kurarsanız hiç kimse tutupta istediği sunucuda çalıştıramaz. eklenti içerisine alacağınız bir güvenlik komutu ilede sorun %95 oranında çözülmüş olur.

    Yetkisiz kullanımlar içinde sizin ip kontrolünüz fazlasıyla yeterli olur. İoncube ile hiç uğraşmamanızı tavsiye ederim zaten 300 $ civarında şu anda program , 500-600 tl ona vermektense size özel bir eklenti ile kimsenin uğraşmayacağı bir şifreleme çok dha mantıklı olur..
    Şimdi şöyle birşey var. Yazılımı kurduğum binalarda çok çakal it ekibi var. Valla ben bu yazılımı alıp satayım diyenlerle karşılaştım ama modifiye edilmiş linux işletim sistemini görünce apışıp kalıyorlar. Biraz kafam rahat o konuda ama ne olur ne olmaz diye benim bir şekilde bunu halletmem gerekiyor. Çünkü yakında windows ve os x üzerinde bu yazılımı çalıştırmak isteyen müşterilerimiz olacak. Yani linux üzerinde program yazdırsam diğerleri için de yazdırmak zorunda kalacağım ki bu da biraz maliyetli olur. Aklıma şöyle bir fikir geliyor ama nasıl yapacağımı bilemiyorum tabi. php.ini içnide bir komut ile paket kontrolü yapıp işletim sistemi içinde gizlenmiş bir dosya üzerinden lisans kontrolü yapsam adam bunu çakamaz gibi geliyor. Ama nasıl işte orası kafa karıştırıcı