5 l i b o m t c b n trong Rails app hay g p trong th c tỗ ả ậ ơ ả ặ ự ế
1. Thi u th i gian h t h n c a sessionế ờ ế ạ ủ
Nh trongư Securing Rails Applications ta bi t session hay còn g i là phiên ế ọ
làm vi c:ệ
Sessions that never expire extend the time-frame for attacks such as cross-site
request forgery (CSRF), session hijacking and session fixation.
t m d ch làạ ị
Sessions s không bao gi h t h n s làm tăng th i gian cho các cu c t n ẽ ờ ế ạ ẽ ờ ộ ấ
công nh CSRF, session hijacking và session fixationư
M c dù, m t phiên không h t h n d ng nh phù h p v i quan đi m c a ặ ộ ế ạ ườ ư ợ ớ ể ủ
ng i dùng (b i vì ng i dùng s trong tr ng thái đ c đăng nh p mãi, ườ ở ườ ẽ ở ạ ượ ậ
và s không c n ph i đăng nh p l i m i khi m l i ng d ng), nh ng đó ẽ ầ ả ậ ạ ỗ ở ạ ứ ụ ư
là m t quan đi m r t t i t . Đi u đó s d n t i nguy c có ai đó s l y ộ ể ấ ồ ệ ề ẽ ẫ ớ ơ ẽ ấ
tr m session c a user đ y, b i vì có m t tr ng h p nào đó, user đã quên ộ ủ ấ ở ộ ườ ợ
đăng xu t kh i máy tính m t n i công c ng nh 1 quán net ch ng h n, ấ ở ở ộ ơ ộ ư ẳ ạ
do đó, session nên cài đ t th i gian h t h n.ặ ờ ế ạ
Gi i phápả
Cách đ n gi n nh t là cài đ t th i gian h t h n cho session trong initializer ơ ả ấ ặ ờ ế ạ
c aủ config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, expire_after: 12.hours
V i config trên, session cookie s t đ ng h t h n trong 12 gi sau khi t o.ớ ẽ ự ộ ế ạ ờ ạ
Tuy nhiên, ph ng pháp này có m t l h ng, đó là th i gian h t h n đ c ươ ộ ỗ ổ ờ ế ạ ượ
cài đ t browser c a user. Khi đó, n u có ai đó chi m quy n ki m soát ặ ở ủ ế ế ề ể
session cookie thì có th d dàng tăng th i gian h t h n b ng cách ch nh ể ễ ờ ế ạ ằ ỉ
s a cookie.ử
Đ gi i quy t v n đ trên, th i gian h t h n nên đ c l u l i trên server.ể ả ế ấ ề ờ ế ạ ượ ư ạ