我目前正在致力於通過遠程網站提供一些服務的REST/JSON API。我不知道這些網站的最終客戶,他們將/不應該有API服務器上的帳戶。在API服務器上存在的唯一帳戶將是標識網站的帳戶。由於這是全部RESTful,因此所有通信都將在最終用戶瀏覽器(通過javascript/JSON)和我的REST API服務之間進行,因此我如何確保系統不會被有興趣增加中間人賬單的第三方濫用? (中間人是網站轉售我的服務的所有者)。你會推薦哪些驗證方法可以起作用,並且會阻止用戶僅僅從網站獲取js代碼並將其稱爲1000000次,以破壞網站所有者?我正在考慮使用HTTP_REFERER,並將其轉換爲IP地址(以找出哪個服務器託管代碼,並基於此IP進行身份驗證),但我認爲HTTP_REFERER很容易被欺騙。我沒有在API服務器上尋找我的客戶的最終客戶,這會破壞這個API的目的。第三方客戶的休息API(AAA)
有些想法請嗎?
感謝, 丹
我想用這樣的東西:讓遠程網站首先打開一個認證鏈接,它將通過$ _SERVER ['REMOTE_ADDR']和服務器IP通過$ _SERVER ['SERVER_ADDR'提供最終用戶IP地址'],然後該API將生成一個將由JS代碼使用的到期令牌,該令牌將授權客戶遠程IP 5分鐘左右。通過這種方式(使用fopen),我可以驗證該IP地址是否來自我們的API來自有效網站,並且該客戶可以在接下來的5分鐘內做任何他想做的事情。你可以看到什麼缺點? – Dan
如果五分鐘過期並且用戶突然不能做什麼,會發生什麼?你們所有的潛在客戶都使用PHP嗎? – ryan1234
他們使用的是無關緊要的,我的API服務器使用PHP並使用$ _SERVER的東西。我假設我可以在js代碼中實現一個計時器,如果用戶在該時間範圍內沒有離開當前頁面,則會每隔300秒通過ajax調用auth文件(執行fopen的文件)。這將更新令牌。 – Dan