请问,我把用户 id 保存到 session,调用时有什么安全问题吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wfdaj
V2EX    PHP

请问,我把用户 id 保存到 session,调用时有什么安全问题吗?

  •  
  •   wfdaj 2021-08-24 13:48:06 +08:00 3229 次点击
    这是一个创建于 1509 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,session 里保存了 用户 id,用户名和邮箱,在显示用户信息的视图页面,经常这样调用:

    <?php if (!empty($_SESSION['userId']) && ($_SESSION['userId'] === $this->user['uid'])) ?> 

    这会有什么安全问题吗?

    如果有,在视图页面,我应该如何安全的读取用户信息呢?感谢!

    8 条回复    2021-08-28 19:20:27 +08:00
    Xusually
        1
    Xusually  
       2021-08-24 14:09:19 +08:00   1
    session 是保存在服务器端的,具体是存在磁盘上还是别的比如 memcache 之类的是看你 php 的环境配置:
    https://www.php.net/manual/zh/session.configuration.php#ini.session.save-handler

    简单来说,一般情况下,服务端会在 session 开始的时候,给客户端浏览器种一个 cookie,标记 session id,以后请求的时候,带着这个 session id 过来,服务端会把这个 session id 对应的 session 的信息都保存下来。
    本身 session 就是为了在服务端临时保存用户信息,交易信息什么的,你这么使用没什么安全问题。

    当然如果你客户端的 cookie 被偷了,那什么都不安全了。
    murmur
        2
    murmur  
       2021-08-24 15:22:58 +08:00
    没问题的,jwt 就是类似的机制,但是必须保证 uid 是加密或者可信可验证的,比如改了 uid 整个 token 解密校验不过
    murmur
        3
    murmur  
       2021-08-24 15:23:54 +08:00
    看错了,我以为是 cookies 中的 session 字符串
    wfdaj
        4
    wfdaj  
    OP
       2021-08-24 15:38:06 +08:00
    感谢 @Xusually @murmur
    kaneg
        5
    kaneg  
       2021-08-24 21:41:57 +08:00
    user id 这种不敏感的信息存在 session 是正常的做法。
    Rache1
        6
    Rache1  
       2021-08-25 09:42:02 +08:00
    后面这个 $_SESSION['userId'] === $this->user['uid'] ,你这个 $this->user 是凭空来的吗?
    fatbear
        7
    fatbear  
       2021-08-25 18:45:44 +08:00
    加密,避免通过修改 cookie 导致越权
    wfdaj
        8
    wfdaj  
    OP
       2021-08-28 19:20:27 +08:00
    @Rache1 用的框架,就是这种写法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5497 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:33 PVG 16:33 LAX 01:33 JFK 04:33
    Do have faith in what you're doing.
    ubao 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