11
V2EX  ›  问与答

前后端分离后端 API 安全性最佳实践?

  •  
  •   11 · Jan 25, 2017 · 2784 views
    This topic created in 3421 days ago, the information mentioned may be changed or developed.

    不太清楚这块 web 现在流行的做法,想讨教下下面几个问题:

    1. 前端发送 AJAX 请求,后端 CORS 验证足够吗?那如果攻击者直接手动发送请求, CORS 就没法检测了吧?
    2. 前后端 API 鉴权如何做?如果是非登录的 API (比如 get ),那么根据用户名密码生成 token 就不现实了吧?所以应该是生成特定的 token 然后检测是否过期?
    3. JWT 现在实践上能解决上述问题吗?

    一起探讨下,谢谢~~

    8 replies    2017-01-26 11:22:25 +08:00
    Vogan
        1
    Vogan  
       Jan 26, 2017 via iPhone
    1.cors 是用来限定跨域请求,如果请求来自各种客户端,那么就是*了,和攻击者手动攻击有什么关系?如果是指定 ip ,那写在规则里就行

    2.不需要 token 的公开 API 就是正常请求啊,一般是一定时间请求次数,依据是 ip

    3.没用过。用的 oauth2
    zhouquanbest
        2
    zhouquanbest  
       Jan 26, 2017
    app 怎么做 web 就怎么做
    走 Oauth2 就好了
    Septembers
        3
    Septembers  
       Jan 26, 2017
    HTTPS Only (TLS 1.3)
    hxsf
        4
    hxsf  
       Jan 26, 2017 via iPhone
    @Vogan 1.只有 web 有 cors 。浏览器实现的

    2. 通用无状态 api 一般使用 header 里塞 token 来确认请求源身份。

    3.jwt 是一套别人的一种实现。还带了权限控制貌似,看得不多。详细看 jwt 官网。
    11
        5
    11  
    OP
       Jan 26, 2017
    @Vogan
    @hxsf 关于 CORS 我其实想讨论的是如何防止 API 被非法使用?
    hxsf
        6
    hxsf  
       Jan 26, 2017
    @11 #5 cors 仅仅能限制前端的跨域请求,一定程度上的防护,别人使用其他方式请求你的接口照样能拿到数据。

    身份核实还是要靠 其他手段来 鉴权,比如我刚刚说的第二个。
    11
        7
    11  
    OP
       Jan 26, 2017
    @hxsf 对我就是这个意思。 thanks
    hnch201414
        8
    hnch201414  
       Jan 26, 2017 via Android
    jwt 可以
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2232 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 16:12 · PVG 00:12 · LAX 09:12 · JFK 12:12
    ♥ Do have faith in what you're doing.