Yakın zamanda kurumsal bir php script satışa sunacağım. Scriptin w@reze düşmemesi için ne gibi önlemler almalıyım. Daha önce satışa sunduğum scriptte fonksiyon ve lisans dosyalarını ioncube ile şifrelemiştim. Ancak pek işe yaradığı söylenemez ve w@reze düştü.
Bu satışta ki hedefim domain lisanslı olarak satmak, açık kaynak olarak satışı düşünmüyorum ya da yüksek tutarda açık kaynak satışını yapabilirim.
İkinci bir sorum ise tasarımı tescilleme işlemleri nasıl oluyor. Bu süreç nasıl işler, her sayfayı ayrı ayrı mı tescillemek gerekiyor. Kodları mı tescilletmek gerekiyor yoksa tasarımı mı?
Tecrübeli arkadaşlardan tavsiye alırsam sevinirim.
Scriptin w@reze düşmemesi için ne gibi önlemler almalıyım ?
10
●378
- 16-11-2015, 12:31:37Kimlik doğrulama veya yönetimden onay bekliyor.Sorunuzun cevabını içermeyecek ama konu hakkında düşüncemi yazmak istedim. Bence çalınma w@reze düşme işini bu kadar olumsuz algılamayın, kullanan sayısı arttıkça reklamınız yapılmış olacak ve orijinal almak isteyen çoğalacaktır. Çünkü w@rez içinde zararlı kod bulunabilir. bu riski almak istemeyenler de size geleceklerdir.
Bence vaktinizi ve enerjinizi yazılımı geliştirmeye harcayın. Lisans tescil olayı farklı. Yapabilirseniz mutlaka yapın derim. - 16-11-2015, 16:13:46vatanyazilim adlı üyeden alıntı: mesajı görüntüle
Taninma konusunda haklisiniz. Neriabox diye script hazirladim baya dolasti internette. W@rez indiren bile benimle iletisime gecip destek istiyordu. Ama bir yandanda w@rezi satisa sunuyorlardi. Onlerine gecemiyordum.
Simdi daha sıkı tutmam gerekiyor.
LG-D855 cihazımdan Tapatalk kullanılarak gönderildi - 16-11-2015, 18:09:16hocam script güzel olursa %90 w@reze düşüyor adamlar affetmiyor
- 05-12-2015, 11:07:43En kesin yontem diyemem ama suanki basit ioncube vs kirilma sorununu cozen vede daha net bir yontem, yaziliminizin bazi temel ve ozel fonksiyonlari sizin kendi sunucunuz uzerinden islem yapacak. ioncube vs kirsalar bile yazilimin tamami ellerinde olmadigi icin sizin sucununuzdan islem onayi almayan domainde yaziliminiz calismayacak.
Tabi sizin sunucunuz dedigim makine, sifr bu islem icin hazirlanmis vede sadece bu isi yapan, cloud bir vps vs de olacak ve guvenlik acigi vs barindirmamasi icin oncesinde elden gececek.
Burada onemli konu basit bir domain check olmamasi gerekiyor sizin sunucuda calisacak yapinin. Misal admin panelini temel ayarlarin oldugu yapiyi komple kendi sisteminizden calistirtacaksiniz, yazilimi kiracak sahis sifirdan admin panali yazip, bunu sizin yazilima baglamak zorunda kalacak ki onun yerine sfirdan yazsa sistemi daha rahat eder sanirim. - 05-12-2015, 13:51:50Scriptin tüm dosyaları gerekli güvenlik önlemleriyle şifrelenmiş olması, ayrıca domaine lisansının yapılması, lisans sunucusuna erişmeden scriptin çalışmaması , scriptin çalışması için gerekli dosyaların uzak bir sunucudan çekilmesi , Script için oluşturulan özel dosya ile scriptin çalışır hale gelmesi gibi bir çok işlem ile bir arada yapılabilir.Ayrıca script için özel şifreleme yapılması daha hoş olur hem aes 256 bit hemde ioncube son sürüm iş yapacaktır. tabiki şifreleme konusunda uzman destek sağlayabilirimtasarimhizmet adlı üyeden alıntı: mesajı görüntüle
<?php class AES { const M_CBC = 'cbc'; const M_CFB = 'cfb'; const M_ECB = 'ecb'; const M_NOFB = 'nofb'; const M_OFB = 'ofb'; const M_STREAM = 'stream'; protected $key; protected $cipher; protected $data; protected $mode; protected $IV; /** * * @param type $data * @param type $key * @param type $blockSize * @param type $mode */ function __construct($data = null, $key = null, $blockSize = null, $mode = null) { $this->setData($data); $this->setKey($key); $this->setBlockSize($blockSize); $this->setMode($mode); $this->setIV(""); } /** * * @param type $data */ public function setData($data) { $this->data = $data; } /** * * @param type $key */ public function setKey($key) { $this->key = $key; } /** * * @param type $blockSize */ public function setBlockSize($blockSize) { switch ($blockSize) { case 128: $this->cipher = MCRYPT_RIJNDAEL_128; break; case 192: $this->cipher = MCRYPT_RIJNDAEL_192; break; case 256: $this->cipher = MCRYPT_RIJNDAEL_256; break; } } /** * * @param type $mode */ public function setMode($mode) { switch ($mode) { case AES::M_CBC: $this->mode = MCRYPT_MODE_CBC; break; case AES::M_CFB: $this->mode = MCRYPT_MODE_CFB; break; case AES::M_ECB: $this->mode = MCRYPT_MODE_ECB; break; case AES::M_NOFB: $this->mode = MCRYPT_MODE_NOFB; break; case AES::M_OFB: $this->mode = MCRYPT_MODE_OFB; break; case AES::M_STREAM: $this->mode = MCRYPT_MODE_STREAM; break; default: $this->mode = MCRYPT_MODE_ECB; break; } } /** * * @return boolean */ public function validateParams() { if ($this->data != null && $this->key != null && $this->cipher != null) { return true; } else { return FALSE; } } public function setIV($IV) { $this->IV = $IV; } protected function getIV() { if ($this->IV == "") { $this->IV = mcrypt_create_iv(mcrypt_get_iv_size($this->cipher, $this->mode), MCRYPT_RAND); } return $this->IV; } /** * @return type * @throws Exception */ public function encrypt() { if ($this->validateParams()) { return trim(base64_encode( mcrypt_encrypt( $this->cipher, $this->key, $this->data, $this->mode, $this->getIV()))); } else { throw new Exception('Invlid params!'); } } /** * * @return type * @throws Exception */ public function decrypt() { if ($this->validateParams()) { return trim(mcrypt_decrypt( $this->cipher, $this->key, base64_decode($this->data), $this->mode, $this->getIV())); } else { throw new Exception('Invlid params!'); } } }demo<?php include 'AES.php'; $imputText = "My text to encrypt."; $imputKey = "encryptor key"; $blockSize = 256; $aes = new AES($imputText, $imputKey, $blockSize); $enc = $aes->encrypt(); $aes->setData($enc); $dec=$aes->decrypt(); echo "After encryption: ".$enc."<br/>"; echo "After decryption: ".$dec."<br/>"; ?>
örnek şifrelenmiş bir lisans anahtarı :
ahyXiNW7A1cjmIevgi1cJzMuIFylbxPoQ/rebJN2rkUwfmE9YZ6XM/DDSDBXQQwPVFbh94eAGpucvNB7zE29fQ==
bunu çözebildiğini iddaa eden çözüp konuya eklerse sevinirim