• 26-11-2021, 11:54:19
    #10
    TheKhan adlı üyeden alıntı: mesajı görüntüle
    Sunduğunuz hizmet için hostingde size aitse yapacağınız tek şey hosting şifrelerini kimseye vermemek olur. En güvenli yöntemde budur. Bunun dışında ne kullanırsanız kullanın bir süre sonra kod kırılacaktır. Bunun önüne geçemezsiniz. Buna karşılık olarak sürekli güncel sürümler yayınlayıp ioncube versiyonunu yükseltmeyi deniyebilirsiniz. Bu durumda bile eski sürüm sahipleri daha sonra kodu kırabilirler.
    Kısaca %100 çözüm yok. Sürüm yükseltip başka özellikler katarak satın almayı özendirebilirsiniz.
    Peki kendi hostumuzu almanın bunun en düşük maliyeti ne kadardan başlıyor hocam?
  • 26-11-2021, 12:01:44
    #11
    Kimlik doğrulama veya yönetimden onay bekliyor.
    buddy adlı üyeden alıntı: mesajı görüntüle
    Peki kendi hostumuzu almanın bunun en düşük maliyeti ne kadardan başlıyor hocam?
    Hosting konusunda size uyguna yardimci olabilirim PM atabilirsiniz.
  • 26-11-2021, 14:08:01
    #12
    buddy adlı üyeden alıntı: mesajı görüntüle
    Tabiki Sizin söylediğiniz de @HelixTm; 'nin de dediği gibi şifreleme için kendi algoritmamızı oluşturmak mı?
    Önerileriniz nedir?
    Şifreleme algoritmalarından ziyade uygulamayı dışa bağımlı tutmak. genelde 7/24 up olan bir sistem bekler.

    Örn.

    islem adında bir fonksiyonun olsun. bu fonksiyonun bulunduğu dosyayı kriptoladığında bir şekilde kırıldığında kaynak kodunu görebiliyorlar.
    fakat bu tarz dosyalarını scriptten tamamen ayırıp ayrı bir yerde host edip ana scriptten gerekli lisans, header vb. bilgileri alarak istek atıp o fonksiyonun yapacağı işlemi kendi sunucunda işletip dönersen herhangi bir kriptolamaya ihtiyacın olmaz.
    çünkü kendi sunucunda her zaman lisans vb. olayları kontrol etmiş olacaksın.
    o fonskiyonun karmaşık bir fonksiyon olduğunu varsayalım veya o fonksiyona ait başka bağımlılıklarında olduğnu varsayalım bu şekilde ana script onları bilmeyecek sadece şu işlemi yap diyip sonuç bekleyecek
    gelen sonuca göre ana scriptin işlemlerine devam edebilir yada o sonuç gelmezse edemez. ve bu şekilde kırmak isteyen kişi o fonksiyonun bağımlılıklarını bilmeyecek sadece tahmin edebilecek. tahmin ederekte yazmak zaten zor olur

    o fonksiyonun kaynak kodları her zaman senin elinde olmuş olacak. tek bir yerde

    en basit haliyle aslında böyle bir şey. bunu ne kadar karmaşık hale getirirsen o kadar zor çözülür. kırmak isteyen kişi o konuda uzman olmak zorunda kalır. o fonksiyonun tam olarak ne iş yaptığını deneyerek tahmin ederek bulmaya çalışır.
  • 26-11-2021, 14:55:58
    #13
    buddy adlı üyeden alıntı: mesajı görüntüle
    Peki kendi hostumuzu almanın bunun en düşük maliyeti ne kadardan başlıyor hocam?
    Host konusunda fikir beyan etmem yanlış olur. Sonuçta forumda bir sürü host sağlayıcı var. Ayrıca bu sizin projenizin kapsamı ve boyutuna göre değişiklik gösterecektir.
    Başka bir yöntem geldi aklıma. php.ini içerisinde bulunan include_path parametresinide kullanabilirsiniz.
    Örneğin root yetkisi sizde olan ancak müşteriye kullanıcı yetkisi verdiğiniz bir sunucu olsun, (neden verirsiniz bilmiyorum)
    Bu sunucuda normal kullanıcının okuyamayacağı bir klasöre yazdığınız sistem tarafından kullanılacak dosyaları atıp, php ayar dosyasında bulunan include_path parametresine bu klasör adresini ekleyin. "include" fonksyonu bu klasöre de bakıp sizin gizlediğiniz dosyaları include edecektir. Kritik fonksyonları bu şekilde nispeten gizleyebilirsiniz.
    Çok kullanılan bir yöntem değildir, ama bayağı kafa karıştıracağını düşünüyorum.
  • 26-11-2021, 15:24:07
    #14
    Hocam başka hosttan örneğin fonksiyon php dosyasını çekmekten bahsediyorsunuz sanırım. Bildiğim kadarıyla uzaktan çekilen php dosyasınının kaynağını değil çeksek bile çıktısını alabiliyoruz. ve güvenli olmadığını biliyorum. Dediğiniz başka nasıl yapılabilir?

    Polat adlı üyeden alıntı: mesajı görüntüle
    Şifreleme algoritmalarından ziyade uygulamayı dışa bağımlı tutmak. genelde 7/24 up olan bir sistem bekler.

    Örn.

    islem adında bir fonksiyonun olsun. bu fonksiyonun bulunduğu dosyayı kriptoladığında bir şekilde kırıldığında kaynak kodunu görebiliyorlar.
    fakat bu tarz dosyalarını scriptten tamamen ayırıp ayrı bir yerde host edip ana scriptten gerekli lisans, header vb. bilgileri alarak istek atıp o fonksiyonun yapacağı işlemi kendi sunucunda işletip dönersen herhangi bir kriptolamaya ihtiyacın olmaz.
    çünkü kendi sunucunda her zaman lisans vb. olayları kontrol etmiş olacaksın.
    o fonskiyonun karmaşık bir fonksiyon olduğunu varsayalım veya o fonksiyona ait başka bağımlılıklarında olduğnu varsayalım bu şekilde ana script onları bilmeyecek sadece şu işlemi yap diyip sonuç bekleyecek
    gelen sonuca göre ana scriptin işlemlerine devam edebilir yada o sonuç gelmezse edemez. ve bu şekilde kırmak isteyen kişi o fonksiyonun bağımlılıklarını bilmeyecek sadece tahmin edebilecek. tahmin ederekte yazmak zaten zor olur

    o fonksiyonun kaynak kodları her zaman senin elinde olmuş olacak. tek bir yerde

    en basit haliyle aslında böyle bir şey. bunu ne kadar karmaşık hale getirirsen o kadar zor çözülür. kırmak isteyen kişi o konuda uzman olmak zorunda kalır. o fonksiyonun tam olarak ne iş yaptığını deneyerek tahmin ederek bulmaya çalışır.
  • 26-11-2021, 15:27:40
    #15
    buddy adlı üyeden alıntı: mesajı görüntüle
    Hocam başka hosttan örneğin fonksiyon php dosyasını çekmekten bahsediyorsunuz sanırım. Bildiğim kadarıyla uzaktan çekilen php dosyasınının kaynağını değil çeksek bile çıktısını alabiliyoruz. ve güvenli olmadığını biliyorum. Dediğiniz başka nasıl yapılabilir?
    php dosyası uzaktan çekilmeyecek hocam. uzaktan belirtilen parametrelere göre çalıştırılıp sadece sonuç döndürülecek zaten sizin scriptinizdeki işlemler basit ise tahmin edilmesi kolay olur. benim yaptığım işlemler karmaşık olduğu için ve sadece tek bir yer için yapmadığım için henüz kırılmadı. denenip denenmediği hakkında da bir fikrim yok ki zaten ip bazlı request limiti de mevcut. kuracağın yapıya göre bunu şekillendirmen gerekiyor.

    eğer basit düzeyde bir script yapıyorsan zaten söylediğim yöntem işine yaramaz
  • 26-11-2021, 15:36:11
    #16
    Ben PHP ile uğraştığım zamanlarda https://codecanyon.net/item/php-enco...cator/12925043 bunu kullanıyordum. Sizin için basit bir örnek yaptım belki işinize yarar diye
    Orjinal kod
    try {
        global $db;
        $db = new PDO("mysql:host=" . $config['panel_ip'] . ";dbname=" . $config['panel_dbname'], $config['panel_user'], $config['panel_pass']);
    } catch (PDOException $e) {
        print $e->getMessage();
    }
    Şifrelenmiş hali
    <?php /* Do not change this code, or your script will not work. Checksum: c9f0f895fb98ab9159f51fd0297e236d */ eval(base64_decode("JE8wTzBPMDBPME89ZmlsZShwcmVnX3JlcGxhY2UoIkBcKC4qXCguKiRAIiwiIixfX0ZJTEVfXykpOwppZihwcmVnX3JlcGxhY2UoIkBcKC4qXCguKiRAIiwiIixfX0ZJTEVfXyk9PV9fRklMRV9fIG9yCnByZWdfcmVwbGFjZSgiQFwoLipcKC4qJEAiLCIiLF9fTElORV9fKSAhPSAzKWRpZSgiPHR0PkVSUk9SIik7"));eval(base64_decode("ZnVuY3Rpb24gSUkxMWxJSTExMSgkYSwkYil7JGM9YXJyYXkoOTcwLDMyNCwzMiwyMDIpOyRrPWd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCJLeXJOVGNvc0tRWUEiKSk7JE8wTzA9JGtbNl0uJGtbMV0uJGtbM10uJGtbNl0uJGtbNV0uJGtbMF07JE8wPSIka1s1XSRrWzBdJGtbNF0ka1syXSI7aWYoJGI9PTIwKXskZD0kTzBPMCgkYSwkY1swXSskY1sxXSwkY1syXSk7fWVsc2VpZigkYj09NzMpeyRkPSRPME8wKCRhLCRjWzBdLCRjWzFdKTt9ZWxzZWlmKCRiPT03OSl7JGQ9JE8wKCRPME8wKCRhLCRjWzBdKyRjWzFdKyRjWzJdKSk7fXJldHVybiRkO30="));eval(base64_decode(II11lII111($O0O0O00O0O[0],73)));eval(Il11lI1lI1(II11lII111($O0O0O00O0O[0],79),II11lII111($O0O0O00O0O[0],20),$O0O0O00O0O));__halt_compiler();8aWYoIWZ1bmN0aW9uX2V4aXN0cygiSWwxMWxJMWxJMSIpKXtmdW5jdGlvbiBJbDExbEkxbEkxKCRhLCRiLCRjKXskZD1pbXBsb2RlKCRjKTskZD1wcmVnX3JlcGxhY2UoIi9fX2hhbHRfY29tcGlsZXIuKi8iLCIiLCRkKTtpZigkYj09aGFzaCgibWQ1IiwiJGQiKSl7cmV0dXJuKGd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCRhKSkpO31lbHNle2RpZSgiPHR0Pm1kNSBDb2RlIG1hbmlwdWxhdGlvbiBkZXRlY3RlZDwvdHQ+Iik7fX19c3c687a2a2d5ba05eebacbd12d47e3c3bY5BCsIwEEX3gncYSiEpqAew1FVdiu6lSJKOaSBNYieiRby7weJGOqvP+3/gxWGE13IB6bT1UljIW1lOICWowOEDTvWRZ/1IN7vtPMUqgw3kyrur0WcWhEN7MYE1iWZlK53ocW4yNaxZ/Rd3wmEGB0HEmiLZvEGJqDrgSWT/VBii8Q5yLH7uYTAuJrDeaYwHJBIa+ffzAw
  • 26-11-2021, 15:57:02
    #17
    Hm bu mantıklı geldi hocam parametreyi uzaktan nasıl neyle alıyorsunuz ? Sadece parametre alıyorum dediğiniz yer için küçük bir örnek yazabilir misiniz?

    Polat adlı üyeden alıntı: mesajı görüntüle
    php dosyası uzaktan çekilmeyecek hocam. uzaktan belirtilen parametrelere göre çalıştırılıp sadece sonuç döndürülecek zaten sizin scriptinizdeki işlemler basit ise tahmin edilmesi kolay olur. benim yaptığım işlemler karmaşık olduğu için ve sadece tek bir yer için yapmadığım için henüz kırılmadı. denenip denenmediği hakkında da bir fikrim yok ki zaten ip bazlı request limiti de mevcut. kuracağın yapıya göre bunu şekillendirmen gerekiyor.

    eğer basit düzeyde bir script yapıyorsan zaten söylediğim yöntem işine yaramaz
  • 26-11-2021, 16:07:31
    #18
    buddy adlı üyeden alıntı: mesajı görüntüle
    Hm bu mantıklı geldi hocam parametreyi uzaktan nasıl neyle alıyorsunuz ? Sadece parametre alıyorum dediğiniz yer için küçük bir örnek yazabilir misiniz?
    yani basit örnek vermek biraz işi anlamanızda yardımcı olmayabilir ama şöyle bir örnek vereyim.

    function encryptPassword(
            $password,
            $publicKeyId,
            $publicKey)
        {
            $key = openssl_random_pseudo_bytes(32);
            $iv = openssl_random_pseudo_bytes(12);
            $time = time();
    
            openssl_public_encrypt($key, $encryptedAesKey, base64_decode($publicKey));
            $encrypted = openssl_encrypt($password, 'aes-256-gcm', $key, OPENSSL_RAW_DATA, $iv, $tag, strval($time));
            $payload = base64_encode("\x01" | pack('n', intval($publicKeyId)) . $iv . pack('s', strlen($encryptedAesKey)) . $encryptedAesKey . $tag . $encrypted);
    
            return sprintf('#PWD_INSTAGRAM:4:%s:%s', $time, $payload);
        }
    yukarıdaki gibi bir fonksiyon olsun, instagram şifrelerinin hashlenmiş halini düşünelim.
    bunu script içerisine koymak yerine uzak bir yere koyup return ile dönelim apiden.


    ana scriptten bir post isteği ile post verileri şunlar olabilir.

    ->lisans anahtarı
    ->password
    ->publicKeyId
    ->publicKey

    her seferinde bu istek sizin sitenizden geçmek zorunda. ve dönen sonuca göre de ana scriptiniz işlemine devam etmek durumunda. lisans zaten gelmek zorunda başta onu kontrol edebilirsin. varsa aktifse işlemi yapıp dönebilrisin.
    burada sadece 1 fonksiyon var. bunu tahmin ederek yazması zor. bunu daha da karmaşıklaştırdığını ve birden fazla fonksiyon ve gereksinimli olduğu halini düşünün. tahmin edilip yazması zor.
    zaten tahmin edip yazarsa yapacağın bir şey yok ama en azından kaynak kodu şifrelenmiş bir halde bile teslim etmemiş olacaksın en azından oturup o kodları yazması gerekecek o çıktıya benzer çıktılar alabilmesi için.
    bu fonksiyonda da zaten her gelecek olan request e göre farklı bir sonuç dönecek. yani birebir aynı sonucu döndürene kadar denemektense kırmayı denemezler bence.

    bu fonk. tamamen bir örnek. bunu daha da karmaşıklaştırabilirsin. ama burada şöyle bir olay var. bu fonksiyonu çalıştıracağın host hiçbir zaman kapanmamalı ve yüksek requestlere dayanabilmeli. yoksa müşterilerin sitesi yavaş çalışabilir yada hiç çalışmayabilir
    bu örneği kendi sistemine uygun şekilde ayarlayıp optimizeler yaparsan daha garanti ve güzel bir yol bana göre.