cari

Rumah  >  Soal Jawab  >  teks badan

单点登录ticket在redis中存储问题

用户通过在单点登录服务器登陆,登录成功后,单点登录服务器分配给该用户一个ticket。然后单点登录服务器将该ticket做为key,用户名做为value,存储在redis中。通过判断该key是否是有效的来判断该用户会话有效。
后续会有服务通过向单点登录服务器发送一个ticket来验证该ticket是否有效,来判断该用户是否登录了。
但是这样会有个问题,某个用户肯能不停的登录,这样单点登录服务器每次都会将该ticket存储在redis中,虽然该ticket有过期时间,但有可能在短时间内在redis中写入大量的ticket。
不知这个有什么好的解决方法吗?

世界只因有你世界只因有你2761 hari yang lalu956

membalas semua(5)saya akan balas

  • PHPz

    PHPz2017-04-24 16:02:16

    Jika perkara yang anda bincangkan ialah antara muka telah dipanggil secara berniat jahat, ia tergolong dalam perlindungan DDOS, dan jawapan saya tidak berkenaan.
    Malah, masalah anda akan dihadapi oleh sesiapa sahaja yang telah melakukan fungsi ini, jika dinilai pengguna telah log masuk, ia mesti tidak dilakukan secara khusus untuk menggunakan kuki dan sesi adakah situasi log masuk dengan pelayar yang berbeza, kuki dan Sesi tidak berguna.
    Apa yang saya lakukan pada masa itu adalah untuk mengekalkan hubungan lain dalam redis: nama pengguna-->tiket, supaya tiket sebelumnya boleh ditemui berdasarkan nama pengguna, dan ia boleh ditentukan sama ada pengguna telah log masuk berulang kali.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-04-24 16:02:16

    Saya akan menjawab ini terlebih dahulu Tambahkan kod pengesahan semasa log masuk untuk menyukarkan lagi untuk log masuk ke mesin. Ini adalah satu kaedah Saya tertanya-tanya adakah kaedah lain?

    balas
    0
  • 某草草

    某草草2017-04-24 16:02:16

    Selepas log masuk, tiket hendaklah direkodkan di sebelah pengguna, atau gunakan sesi atau kuki Kemudian apabila log keluar, pelayan boleh mendapatkan tiket dan mengosongkannya atau apabila pengguna log masuk semula, pelayan juga boleh dapatkan tiket terakhir untuk memutuskan sama ada Cara lain untuk memusnahkan ialah menggunakan ID pengguna sebagai nilai utama untuk menyimpan tiket

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-24 16:02:16

    Jika anda log masuk secara berterusan dalam tempoh yang singkat, jika ia adalah operasi manual, anda boleh yakin bahawa redis tidak akan dapat mengekalkannya.

    Jika ia adalah serangan DDoS, anda harus menambah dasar perlindungan di luar (penghala, tembok api, pelayan HTTP atau aplikasi anda).

    Dalam aplikasi, ia bergantung pada cara anda akan mentakrifkan tingkah laku "log masuk tidak normal" tersebut Contohnya, anda boleh membandingkan log masuk dalam tempoh masa yang singkat (anda boleh menyesuaikan selang masa), sama ada sumbernya konsisten. (seperti pengguna dari bumi dalam masa 5 saat) Log masuk dari 10 tempat yang berbeza Selepas menilai tingkah laku log masuk yang tidak normal, anda boleh memutuskan cara menanganinya mengikut sensitiviti aplikasi (mengharamkan akaun? menyekat IP? mengumpul). bukti dan hubungi polis:-)

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-04-24 16:02:16

    Dah log masuk, kenapa nak biarkan dia log masuk lagi?

    balas
    0
  • Batalbalas