Müşterilerinizin uygulamalarına koymaları için yetkilendirme jetonları vermeye bağlıysanız, birisinin uygulamayı tersine çevirip bunları çıkarması teorik olarak her zaman mümkün olacaktır. Bunu önlemek için, istemci uygulamasında bir sır gerektirmeyecek bir mekanizmaya ihtiyacınız olacaktır. Bu zor. Yine de düşünmeniz için bazı seçenekler önerebilirim.
Kimlik bilgilerini verdikten sonra bir sorununuz var, bunların ne kadar güvenli bir şekilde saklanacağı konusunda hiçbir kontrolünüz yok. Ayrıca, kullanıcının kimlik bilgilerini size göndermesini isterseniz, birileri bağlantınızı MITM yapabilir ve uygulamayı tersine mühendislikle uğraşmadan doğrudan jetonları çalabilir.
Yetkilendirme simgenizi çıkarmayı daha zor hale getirmenin bir yolu, onu gizlemek. Bu sadece çıtayı yükseltiyor, ama imkansız kılmıyor ve bunu yapmak için sırrın kontrolünü elinizde tutmanız gerekecek. Gizli bilgileri içeren ve her müşteriye özgü bir kitaplık uygulayabilirsiniz. Kütüphaneyi sunucularınızla iletişim kurmak için kullanabilirsiniz ve hatta kullanıcıya gizli bilgileri söylemek zorunda kalmayabilirsiniz, sadece kütüphaneye gömülebilir. Bu, birisinin kütüphanenizi tersine mühendislik problemini çözmez, ancak sizi şaşırtma düzeyini kontrol altına almanızı sağlar. Bir dezavantajı, bir kişi kütüphanedeki şaşkınlığı kırdıktan sonra, her kütüphaneyi önemli ölçüde farklı kılan kod yazmadıkça, herhangi bir kütüphanenize saldırabilir. Bu kendi problemlerini ortaya koyuyor.
Bu, sorunuzun kapsamından biraz sapabilir, ancak jetonunuzun güvenliği ile ilgilidir, bu yüzden bundan bahsedeceğim. Simgenin tel üzerinden önemsiz hırsızlığını önlemek için, muhtemelen simgeyi doğrudan göndermek istemezsiniz, bunun yerine bir HMAC işlevi kullanarak trafiği imzalayabilirsiniz. İletinin sunucudaki iletisinin HMAC'sini hesaplayıp istemciden gönderilen HMAC ile karşılaştırarak iletinin geçerliliğini denetleyebilirsiniz. Simgeyi HMAC işlevinin anahtarı olarak kullanırsınız, böylece yalnızca jetonu bilen biri trafiği imzalayabilir. Bu, simgenizin güvenliği için daha iyidir çünkü asla doğrudan sunucuya göndermezsiniz, böylece doğrudan yakalanamaz ve çalınamaz. HMACS hakkında daha fazla bilgi için şu soruya bakın: /security/20129/how-and-when-do-i-use-hmac/20301
Hiçbir güvenlik çözümü emprenye edilemez, tehlikeye girme olasılığına ve maliyetine karşı uygulamanızın ne kadar tutacağına karar vermelisiniz.