如何在网站中隐藏API调用?

时间:2015-03-03 09:51:17

标签: php angularjs web-services laravel

我和我的朋友开发了一个网站。对于前端,我们使用AngularJS,对于后端,我们使用Laravel。

每当需要获取数据时,都会从前端到PHP进行API调用。

我担心的是,此API调用在网络面板中清晰可见。然后一些坏人很容易滥用这个API。我怎么能避免这个?

3 个答案:

答案 0 :(得分:3)

在大多数情况下暴露你的API并不是坏事,但你需要考虑这个:
1.您应该设计API,因此只能进行合法操作。例如:person不能使用API​​删除整个数据库 2.如果需要,您可以提供一些身份验证机制,因此尝试调用API的人必须登录(身份验证令牌应存储在会话中,并在每次API调用时在服务器端验证)。

答案 1 :(得分:2)

如果你想隐藏POST / GET Params表单控制台。尝试以角度调用JSONP。 JSONP调用不是真正的ajax请求,也不会在Firebug中显示。您还可以在收到响应后使用clearconsole()清除控制台,还可以在laravel后端验证请求的IP。

答案 2 :(得分:1)

它就像常规路由一样。例如:每个人都知道他们可以在/:username路线上访问Facebook上的用户个人资料,但Facebook会阻止未经授权的客户查看该数据。 REST路由使用相同的概念。

就像常规页面请求一样,用户可以看到AJAX调用和传递/接收的数据。 JSONP可用于防止常规开发人员工具记录API请求,但这不是一个好的安全解决方案,您的API仍然可以被恶意用户识别。

即使您对请求有效负载和响应进行加密,也可能在加密前和解密后被恶意用户截获。

您提到在API上使用正确的身份验证,这通常足以满足大多数情况。