SECURITY: Validate period param for top topic routes (#13818)

Fixes a possible SQL injection vector
This commit is contained in:
Martin Brennan
2021-07-22 16:31:53 +10:00
committed by GitHub
parent 09d23a37a5
commit f41908ad5b
3 changed files with 27 additions and 0 deletions

View File

@@ -266,6 +266,10 @@ class TopicQuery
end
def list_top_for(period)
if !TopTopic.periods.include?(period.to_sym)
raise Discourse::InvalidParameters.new("Invalid period. Valid periods are #{TopTopic.periods.join(", ")}")
end
score = "#{period}_score"
create_list(:top, unordered: true) do |topics|
topics = remove_muted_categories(topics, @user)