Restful api 如何保障跨域访问安全性? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
a199261800
V2EX    程序员

Restful api 如何保障跨域访问安全性?

  •  
  •   a199261800 2016-08-10 10:00:32 +08:00 5527 次点击
    这是一个创建于 3353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位可以从各后端语言或者前端框架说说吗?

    15 条回复    2016-08-10 16:24:56 +08:00
    laoyur
        1
    laoyur  
       2016-08-10 10:12:34 +08:00
    JSON Web Token ?
    a199261800
        2
    a199261800  
    OP
       2016-08-10 10:33:40 +08:00
    @laoyur 有一个场景,我想直接通过前端 js 调用后端的一个删除 model 的 api 。
    我的做法是这个请求里面包含了 token 信息和 modelID ,可是如果被别人从 js 文件里面看到 token 怎么破?
    laoyur
        3
    laoyur  
       2016-08-10 10:39:56 +08:00   1
    1. 上 https
    2. 页面登录后返回 JSON Web Token 过来
    3. 访问 API 时, header 里面带上 JSON Web Token
    lee015
        4
    lee015  
       2016-08-10 10:41:04 +08:00 via Android
    1 楼说的 jwt 可以的,先从服务器取一次 jwt 生成的 token 存起来,请求时带上服务器验证。
    qinxi
        5
    qinxi  
       2016-08-10 10:44:23 +08:00
    参考 spring session 的方式,其实就是 3 楼那种
    a199261800
        6
    a199261800  
    OP
       2016-08-10 10:45:41 +08:00
    @laoyur get 到,多谢!!!
    neosfung
        7
    neosfung  
       2016-08-10 10:50:46 +08:00
    lz 问的是如果别人在 js 文件中看到 token 怎么办
    我觉得这个还真的没办法
    kanezeng
        8
    kanezeng  
       2016-08-10 11:02:25 +08:00
    @neosfung token 是登陆之后给每个用户单独生成的啊,不存在于 js 文件中啊。
    a199261800
        9
    a199261800  
    OP
       2016-08-10 11:08:46 +08:00
    @kanezeng 想到一个问题,我的请求是纯 js 的,但是如果有登录的话,是不是登录信息也在 js 这边暴露了?
    jarlyyn
        10
    jarlyyn  
       2016-08-10 11:10:57 +08:00
    楼主到底在问啥……

    如果只传输过程的安全的话, https 。

    如果只代码安全的话,能得到 token 的就是有帐号密码的人。

    别人都有帐号密码了,到底问题是啥?

    怕浏览器开发商偷你的资料?
    kanezeng
        11
    kanezeng  
       2016-08-10 11:27:01 +08:00
    @a199261800 你的 js 应该是读取登陆框的用户名和密码信息啊,然后通过 https 发送到服务器。服务器验证通过后返回一个针对这个登陆的 JWT 给你啊。 JS 里面只有业务逻辑,没有登录信息啊?
    tabris17
        12
    tabris17  
       2016-08-10 11:28:14 +08:00
    Restful 关跨域什么事?风马牛不相及的事情

    你要说身份验证和权限验证的方式,倒是有很多
    murmur
        13
    murmur  
       2016-08-10 11:38:02 +08:00
    什么叫跨域的安全性?首先保证你能用 https 如果 token 丢了神仙都救不了你
    jackmasa
        14
    jackmasa  
       2016-08-10 11:55:51 +08:00
    你对一些安全概念缺少了解,比如: CSRF 、 token
    vjnjc
        15
    vjnjc  
       2016-08-10 16:24:56 +08:00
    @jarlyyn 同意。。。楼主只是纯粹的担心吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5498 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 01:24 PVG 09:24 LAX 18:24 JFK 21:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86