首页  >  问答  >  正文

spring - java怎么写一个接口只让app调用?

只能在app内进行调用,不能在web端调用。

我好像听说有这个东西。我用的是spring mvc框架,不知道怎么实现这样的功能。。

巴扎黑巴扎黑2713 天前545

全部回复(5)我来回复

  • phpcn_u1582

    phpcn_u15822017-05-17 10:02:48

    只能说做到部分禁止。

    在app里调用之前设置一个特殊的User Agent,比如“My own app”,在程序开始检查浏览器发过来的User Agent,如果不是“My own app”,则直接报错。

    但是如果遇到高手,他们可以任意伪造User Agent,他们只要一拦截你的App和你的服务器之间的通讯,就能知道你使用了什么样的User Agent,然后在浏览器里伪造一个跟你要求的一模一样的字符串就行了。

    回复
    0
  • 某草草

    某草草2017-05-17 10:02:48

    获取当前时间然后加盐加密,通过url或者ua发送到服务器解析,解析出来与服务器时间对比,超过1分钟的都扔掉。这样别人就算伪造了ua,也只能用1分钟,然后再去伪造新的ua。

    回复
    0
  • 黄舟

    黄舟2017-05-17 10:02:48

    https客户端认证

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-17 10:02:48

    如果使用http接口的话,不妨加一层认证逻辑;
    或者使用非http接口,这样web端就无法调用了

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-17 10:02:48

    终级方案就是@markov 说得开启服务端https的双向认证。
    简单点,也可以app生成校验码做为http header传给服务器,服务端拿到校验码解密后校验。

    回复
    0
  • 取消回复