@@ -21,9 +21,12 @@ def test_persist_persist_by_session
2121 assert session = UserSession . find
2222 assert_equal ben , session . record
2323 assert_equal ben . persistence_token , controller . session [ "user_credentials" ]
24+ refute_includes env_session_options , :renew
2425 end
2526
26- def test_persist_persist_by_session_with_session_fixation_attack
27+ # A SQL injection attack to steal the persistence_token.
28+ # TODO: Explain how `:select` is used, and sanitized.
29+ def test_persist_persist_by_session_with_sql_injection_attack
2730 ben = users ( :ben )
2831 controller . session [ "user_credentials" ] = "neo"
2932 controller . session [ "user_credentials_id" ] = {
@@ -33,7 +36,7 @@ def test_persist_persist_by_session_with_session_fixation_attack
3336 assert @user_session . blank?
3437 end
3538
36- def test_persist_persist_by_session_with_sql_injection_attack
39+ def test_persist_persist_by_session_with_sql_injection_attack_2
3740 controller . session [ "user_credentials" ] = { select : "ABRA CADABRA" }
3841 controller . session [ "user_credentials_id" ] = nil
3942 assert_nothing_raised do
@@ -49,6 +52,7 @@ def test_persist_persist_by_session_with_token_only
4952 session = UserSession . find
5053 assert_equal ben , session . record
5154 assert_equal ben . persistence_token , controller . session [ "user_credentials" ]
55+ refute_includes env_session_options , :renew
5256 end
5357
5458 def test_after_save_update_session
@@ -57,6 +61,7 @@ def test_after_save_update_session
5761 assert controller . session [ "user_credentials" ] . blank?
5862 assert session . save
5963 assert_equal ben . persistence_token , controller . session [ "user_credentials" ]
64+ assert_equal env_session_options [ :renew ] , true
6065 end
6166
6267 def test_after_destroy_update_session
@@ -66,6 +71,7 @@ def test_after_destroy_update_session
6671 assert session = UserSession . find
6772 assert session . destroy
6873 assert controller . session [ "user_credentials" ] . blank?
74+ refute_includes env_session_options , :renew
6975 end
7076
7177 def test_after_persisting_update_session
@@ -74,6 +80,7 @@ def test_after_persisting_update_session
7480 assert controller . session [ "user_credentials" ] . blank?
7581 assert UserSession . find
7682 assert_equal ben . persistence_token , controller . session [ "user_credentials" ]
83+ refute_includes env_session_options , :renew
7784 end
7885 end
7986 end
0 commit comments