Skip to content

Commit 08c8db8

Browse files
committed
Ruby: stop rb/sensitive-get-query from considering ID type data as sensitive
1 parent 79ad7d2 commit 08c8db8

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ from
3838
where
3939
handler.getAnHttpMethod() = "get" and
4040
input.asExpr().getExpr().getEnclosingMethod() = handler and
41-
localFlowWithElementReference(input, sensitive)
41+
localFlowWithElementReference(input, sensitive) and
42+
not sensitive.getClassification() = SensitiveDataClassification::id()
4243
select input, "$@ for GET requests uses query parameter as sensitive data.", handler,
4344
"Route handler"
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
| app/controllers/users_controller.rb:4:16:4:21 | call to params | $@ for GET requests uses query parameter as sensitive data. | app/controllers/users_controller.rb:3:3:6:5 | login_get | Route handler |
2-
| app/controllers/users_controller.rb:5:23:5:28 | call to params | $@ for GET requests uses query parameter as sensitive data. | app/controllers/users_controller.rb:3:3:6:5 | login_get | Route handler |

ruby/ql/test/query-tests/security/cwe-598/app/controllers/users_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ class UsersController < ApplicationController
22

33
def login_get
44
password = params[:password] # BAD: route handler uses GET query parameters to receive sensitive data
5-
authenticate_user(params[:username], password) # BAD: route handler uses GET query parameters to receive sensitive data
5+
authenticate_user(params[:username], password)
66
end
77

88
def login_post
99
password = params[:password] # GOOD: handler uses POST form parameters to receive sensitive data
10-
authenticate_user(params[:username], password) # GOOD: handler uses POST form parameters to receive sensitive data
10+
authenticate_user(params[:username], password)
1111
end
1212

1313
private

0 commit comments

Comments
 (0)