Genel bakış:
Şirketim, hız sınırlamalı bir API geliştirdi. Amacımız iki yönlü:
- C: Ürünümüzün etrafında güçlü bir geliştirici ekosistemi oluşturun.
- B: API'mizin gücünü kendi uygulamamızı çalıştırmak için kullanarak gösterin.
Açıklama: Neden oran sınırı var?
API'mizi sınırlandırıyoruz çünkü ürünümüze ek olarak satıyoruz. API'mize anonim erişimin saat başına API çağrıları için çok düşük bir eşiği varken, ücretli müşterilerimize saatte 1000 çağrı veya daha fazlasına izin verilir.
Sorun:
Hızla sınırlı API'miz geliştirici eko sistemi için harikadır, ancak test sürümünü kullanabilmemiz için aynı hız sınırlamasıyla sınırlandırılmasına izin veremeyiz. API'mızın ön ucu tamamen JavaScript'tir ve API'ye doğrudan Ajax çağrıları yapar.
Yani soru şu:
Hız sınırlamasının kaldırılabilmesi için bir api'yi nasıl güvence altına alırsınız? Bu tür hız sınırlamalarını kaldırma sürecinde kolayca sahtekarlık yapılamaz?
Keşfedilen Çözümler (ve neden işe yaramadılar)
Yönlendireni ana bilgisayar başlığına göre doğrulayın. - Hatalı çünkü yönlendiren kolayca sahtedir.
İstek ve paylaşılan sırrı temel alan bir imza oluşturmak için bir HMAC kullanın , ardından isteği sunucuda doğrulayın. - Kusurlu çünkü sır ve algoritma, ön uç JavaScript'e bakılarak kolayca belirlenebiliyordu.
İsteği proxy'ye bağlayın ve isteği proxy'de imzalayın - Proxy'nin kendisi API'yi açığa çıkardığı için hala kusurlu.
Soru:
Alternatif çözümler sunmak için Stack Overflow'daki parlak beyinlere bakıyorum. Bu sorunu nasıl çözersiniz?