Uygulamayı bırakır kaldırmaz tersine mühendislik uygulanabilir. Bu, aynı uygulama (aynı ikili dosyalar, aynı ayarlar) tüm kullanıcılarınıza dağıtılırsa% 100 korunmak için yapabileceğiniz hiçbir şey olmadığı anlamına gelir.
Uygulamayı her kullanıcı için özelleştirebiliyorsanız, başka bir uygulamanın API'nızı kullanmasını yasaklamama şansınız vardır, ancak en azından bu uygulamayı API'ya yapabileceği istek sayısıyla sınırlandırın.
Aşağıdaki şemayı düşünün:
- İstemci bağlanır ve benzersiz tanımlayıcısını gönderir (kullanıcı tarafından bir tanımlayıcı).
- Sunucu, ortak anahtarla şifrelenmiş bir sorun göndererek yanıt verir. Bu ortak anahtar, daha önce gönderilen benzersiz tanımlayıcı ile ilişkilendirilir.
- İstemci, özel bir anahtar kullanarak verilerin şifresini çözerek sorunu çözer ve şifresi çözülmüş sırrı düz olarak sunucuya geri gönderir.
- Sunucu, gönderilen sırrın orijinal olarak oluşturulan gizliliğe karşılık geldiğini doğrular.
Uygulamanızı hackleyecek ve özel anahtarı başarıyla alacak geliştirici, API'nizi kendi uygulamasından kullanabilir, ancak sunucunuz için kendisi olarak tanımlayıcı olacaktır.
Aynı kullanıcı API'nıza günde 10.000 istekte bulunabilirse ve ortalama olarak etkin bir kullanıcı günde 2000 istekte bulunursa, bu geliştiricinin uygulamasını kendisi kullanabileceği ve belki de arkadaşlarına verebileceği anlamına gelir, ancak mesela binlerce kişiye satamazdı, çünkü sadece sabahları sadece birkaç dakika çalışacaktı.
Bu yardımcı olsa da,% 100 kanıt da değildir. Bilgisayar korsanı, kendi uygulaması cihaza yüklendiğinde özel anahtarı uygulamanızdan çıkarmanın bir yolunu bulursa ne olur?
Sorunuza cevap vermeyen ancak yine de yararlı olabilecek yan not: Bir API'yı birincil ürününüz için bir araç olarak düşünmeyin (mobil uygulama). Bunu birinci sınıf bir ürünün kendisi, ödenebilecek bir ürün olarak düşünün . Aynı model Amazon ve Google tarafından yıllarca kullanılmaktadır, Microsoft tarafından Azure vb. İle aktif olarak kullanılmaya başlanmıştır.
API'yi, yeni parlak mobil uygulamalarınız için köleliğe indirgenmiş ikincil bir araç olarak değil, gerçek ürün, kullanıcının gördüğü herhangi bir uygulama ile aynı seviyede, API'yi nasıl koruyacağınız hakkında daha az düşünmeye başlarsanız diğer uygulamaların kullanımı ve API'nın kendisinden para kazanılması hakkında daha fazla bilgi . Bu tür API, müşterisi olan uygulamalarınız veya herkes tarafından serbestçe geliştirilen diğer uygulamalar tarafından kullanılabilir. Bunun birkaç faydası vardır:
O sadece kullanılacak böylece bir API yapma senin uygulamaları zor ve pahalıdır. Bu kez ve para daha kullanışlı bir şey için kullanılabilir.
API'nizi herkese açmak hem sizin hem de dünya için büyük bir fayda sağlayabilir. Harika bir mimar ve harika bir geliştirici olduğunuzu düşünün, bu yüzden şaşırtıcı derecede harika bir API oluşturdunuz, ancak görsel tasarımcı becerileriniz emiliyor ve etkileşim tasarımı vb. Hakkında hiçbir şey anlamıyorsunuz. API'nizi gizlerseniz, insanların bileceği şey, kullanılamaz ve çirkin bir mobil uygulama oluşturmuş olmanızdır. API'niz herkese açıksa, diğer geliştiriciler kalitesinden etkilenecek ve bunun için harika uygulamalar yazacak ve size çok para kazandıracaktır.
Başkalarının API'larınızı nasıl kullanabileceğini asla hayal edemezsiniz. Kinect ile olan buydu. Başlangıçta, Microsoft oyunlar için Kinect'i yarattı. Microsoft API'yi halka açtığında, birkaç yıl sonra bilimsel uygulamalar, sağlık sektörü vb. Tarafından kullanılacağını hiç düşünmemişlerdir.