Saya sedang membangun program interpretasi yang cukup rumit dengan Python. Saya telah mengerjakan sebagian besar kode ini untuk keperluan lain selama beberapa bulan, dan oleh karena itu tidak ingin klien saya hanya dapat menyalin dan mencoba menjualnya, karena saya pikir itu layak untuk jumlah yang adil.
Masalahnya adalah bahwa saya memerlukan skrip untuk berjalan di server yang klien saya bayar, jadi apakah ada cara saya dapat mengamankan folder tertentu pada mesin dari akses root, atau membuatnya sehingga hanya satu penggunaan tertentu yang dapat mengakses direktori ? OS adalah Ubuntu.
python
code-security
Mike Partridge
sumber
sumber
root
diizinkan untuk melakukan semuanya .Jawaban:
Lisensi itu.
Sungguh, itu saja!
sumber
Anda selalu dapat mengkompilasi semua file Anda ke byte kode pyc. Ada pengurai di luar sana yang dapat menghasilkan kode sumber dari itu tetapi tidak ada yang serius.
Namun itu hanya akan menyelesaikan kemampuan membaca kode program Anda. Untuk melindungi satu-satunya cara adalah melisensikannya seperti yang dikatakan nightcracker, karena bahkan jika Anda mengkompilasi kode Anda, untuk mengatakan kode mesin, jika pekerjaan Anda tidak dilindungi oleh lisensi, itu masih dapat dikomersilkan sesuai keinginan Anda.
Intinya, kompilasi ke kode byte dan yang lebih penting Lisensi itu
sumber
Gunakan Cython. Ini akan memungkinkan Anda untuk mengkompilasi program Anda sebagai executable asli. Maka seharusnya lebih sulit untuk mencuri.
Sedangkan untuk direktori, satu-satunya saran yang bisa saya berikan adalah memastikan Anda telah mengatur izin Anda dengan benar. ACL mungkin teman Anda, meskipun saya tidak 100% yakin bahwa mereka dapat membatasi root dari mengakses file. Bahkan jika mereka bisa, root masih bisa saja mengubah izin. Dia root, dia dewa - begitulah cara kerjanya.
http://www.korokithakis.net/node/109
sumber
Seperti yang ditunjukkan oleh pengguna di atas, disassembler dapat memperoleh kode kembali, tetapi belum terlalu mudah dibaca (setidaknya tidak untuk disassembler open source).
Saya sedang memikirkan hal ini, dan salah satu cara yang saya pikir Anda bisa menyelesaikan masalah ini (jika Anda menyebut kode open paksa masalah) adalah dengan menulis skrip re factoring otomatis. Ini sebenarnya cukup sederhana. Anda hanya akan memberi makan skrip modul Anda, dan itu akan mengganti nama semua variabel spesifik modul. Ini, bersama dengan hanya merilis file yang dikompilasi, akan melakukan banyak hal untuk mengaburkan kode Anda.
Melakukan pencarian di PyPI, saya menemukan ini: http://pypi.python.org/pypi/pyfuscate/0.1 . Anda harus memeriksanya dan yang lain menyukainya dan melaporkannya kembali: D
Juga: Anda juga harus melisensikannya.
sumber
Saya sarankan lisensi juga. Di atas perizinan, mari mengenkripsi kode sumber rutinitas utama menggunakan algoritma kunci asimetris sehingga hanya mesin klien Anda yang dapat menjalankannya. Salah satu kunci dalam pasangan adalah sesuatu yang diperoleh dari perangkat keras (contoh: nomor seri kartu jaringan) dari mesin klien Anda. Gunakan kunci lain dalam pasangan untuk mendekripsi kode sumber saat menjalankan program. Perhatikan bahwa satu-satunya yang dapat dikirim dalam plaintext adalah rutin dekripsi dan sisanya akan berada dalam ciphertext.
Dengan cara ini klien Anda dapat menyalin dan menempelkan kode Anda yang tampaknya omong kosong tetapi tidak dapat menjalankannya di tempat lain. Namun saran saya tidak sepenuhnya anti-peluru: interpreter dapat menyimpan program yang didekripsi di suatu tempat dalam memori. Maka ada kemungkinan bahwa beberapa hacker mengambil program Anda dalam plaintext selama eksekusi saya kira.
Sedangkan untuk mencegah folder dari akses root, saya setuju bahwa root tidak dapat dihentikan dari mengakses file / folder.
sumber
ruby
/python
/node
dengan program kustom yang mencerminkan API eksekusi dan mengeluarkan kode.Perizinan adalah jawaban terbaik di sini. Yang mengatakan, mengapa itu harus berjalan di gigi mereka? Jika ini sangat penting, Anda mungkin ingin menggunakan layanan dan membangun semacam API layanan di sekitar hal-hal sehingga orang-orang bahkan tidak dapat melihat properti intelektual Anda untuk mencurinya.
sumber