如果我在我的MVC應用程序的Web API控制器和我打電話通過jQuery $ AJAX GET請求,我怎麼能確認通話,以確保它是從我的應用程序來的?安全MVC的Web API控制器
有什麼事情,我需要檢查它是來自該IP?我可以使用AntiForgeryToken嗎?
我基本上要在API控制器,只允許從我的應用程序的請求,而不是從別人誰只知道終點。我不希望人們能夠複製API調用。
如果我在我的MVC應用程序的Web API控制器和我打電話通過jQuery $ AJAX GET請求,我怎麼能確認通話,以確保它是從我的應用程序來的?安全MVC的Web API控制器
有什麼事情,我需要檢查它是來自該IP?我可以使用AntiForgeryToken嗎?
我基本上要在API控制器,只允許從我的應用程序的請求,而不是從別人誰只知道終點。我不希望人們能夠複製API調用。
您可以使用CORS來限制從其他來源的呼叫。與CORS一起,您還應該使用身份驗證來保護api(以防止未經身份驗證的訪問)。
要禁用從不同來源請求,則可以在網頁你API(網頁API 2)下面的實施例用[DisableCors]屬性。默認情況下,CORS被禁用。如果在較高的水平(不包括控制器)啓用,您就應該使用這個attibute並且希望在較低的水平(EX-動作)
[DisableCors]
public class UsersController : ApiController
{
public HttpResponseMessage GetUser(int id) { ... }
}
爲了實現從http://contoso.com
[EnableCors(origins: "http://www.contoso.com", headers: "*", methods: "*")]
public class UsersController : ApiController
{
public HttpResponseMessage GetUser(int id) { ... }
}
訪問該控制器限制
您是否閱讀過「同源政策」? – Shyju
我已經讀了一點。這聽起來像什麼,我想使用的是antiforgerytoken,但我不明白爲什麼別人不能只是複製該 – blubberbo
可能要考慮使用JWT或其他一些基於令牌的認證系統。另見http://stackoverflow.com/q/11476883/215552 –