if host then
local elt = map[host]
- local found = false
+ local found_path = false
+ local found_query = false
local data = nil
if elt then
local path = url:get_path()
+ local query = url:get_query()
if path then
for _,d in ipairs(elt) do
if d['path'] == path then
- found = true
+ found_path = true
data = d['data']
+
+ if query and d['query'] and query == d['query'] then
+ found_query = true
+ elseif not d['query'] then
+ found_query = true
+ end
end
end
+ else
+ if not d['path'] then
+ found_path = true
+ found_query = true
+ end
end
-
- if found then
+ if found_path then
local args = nil
if type(data) == 'table' then
args = host
end
- task:insert_result(symbol, 1.0, args)
+ if found_query then
+ -- Query + path match
+ task:insert_result(symbol, 1.0, args)
+ else
+ -- Host + path match
+ task:insert_result(symbol, 0.3, args)
+ end
else
- if url:is_phished() and not url:is_redirected() then
- task:insert_result(symbol, 0.7, host)
+ if url:is_phished() then
+ -- Only host matches
+ task:insert_result(symbol, 0.1, host)
end
end
end
if host then
local elt = {
data = data,
- path = u:get_path()
+ path = u:get_path(),
+ query = u:get_query()
}
if tbl[host] then