如何防止第三方网站私自调用网站的后端接口

对于前后端完全分离的网站,后端采用PHP向前端输出json格式的数据,而前端通过ajax向后端调用接口获取数据。这种情况下,后端的接口如果没有采取一定的保护措施是很容易被其他人恶意调用来做一些非法操作。那么,现在在这种前后端完全分离的网站架构下有哪些主流的对后端接口保护的做法?我所知道的只有时间戳,希望慕课网的大大可以分享一下。

lykss
浏览 6860回答 3
3回答

I_尼克哇

如果只是时间戳就会被伪造。并且需要根据不同应用场景来找解决方法:ajax接口是php程序生成后输出到前端页面的(每次ajax请求接口之前是打开php页面的),这个方法很简单,后端使用时间戳+sign(通过一个key和时间戳md5加密的)去请求后端接口,每次验证sign是否正确就可以了。这里需要注意打开网页 和 ajax接口请求的时间间隔,请求后端验证接口就是验证这个的,sign是为了防止伪造时间戳。对于一个网页打开后,ajax请求是通过用户 点击或者其他动作触发的,上面的方法不能彻底防止,或者他人通过抓取页面后拿到的ajax接口也不能彻底防止。可以使用websocket,来实时获取接口,不过代价有点大,对于想玩技术的人可以试试。对于抓取页面获取ajax接口后再频繁请求ajax接口,也只能封ip了。希望对你有帮助,其他同学有好的方法也可以互相探讨下。

慕男婶

啊,很有价值的问题,关注!如果你自己找到了解决办法,请分享一下!
打开App,查看更多内容
随时随地看视频慕课网APP