18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'app/jobs/trackguard/detect_suspicious_visitors_job.rb', line 18
def perform
recent_cutoff = 24.hours.ago
flag_shared_trace_id_visitors(recent_cutoff)
views_by_visitor = PageView
.where(created_at: recent_cutoff..)
.joins(:visitor)
.merge(Visitor.unflagged)
.preload(visitor: :whitelisted_ip)
.select(:visitor_id, :session_id, :referer, :path, :trace_id)
.group_by(&:visitor)
return if views_by_visitor.empty?
views_by_visitor.each do |visitor, views|
analyze_visitor(visitor, views)
end
end
|