Sanitize base_url and directory parameters

this might be the cause of #25, at least from what it appears
This commit is contained in:
Felipe 2025-07-27 17:18:57 +00:00 committed by GitHub
parent 51becde916
commit 2bf04aff48
2 changed files with 4 additions and 4 deletions

View File

@ -133,10 +133,11 @@ class WaybackMachineDownloader
def initialize params def initialize params
validate_params(params) validate_params(params)
@base_url = params[:base_url] @base_url = params[:base_url]&.tidy_bytes
@exact_url = params[:exact_url] @exact_url = params[:exact_url]
if params[:directory] if params[:directory]
@directory = File.expand_path(params[:directory]) sanitized_dir = params[:directory].tidy_bytes
@directory = File.expand_path(sanitized_dir)
else else
@directory = nil @directory = nil
end end
@ -694,7 +695,6 @@ class WaybackMachineDownloader
file_timestamp = file_remote_info[:timestamp] file_timestamp = file_remote_info[:timestamp]
# sanitize file_id to ensure it is a valid path component # sanitize file_id to ensure it is a valid path component
file_id = file_id.tidy_bytes if file_id
raw_path_elements = file_id.split('/') raw_path_elements = file_id.split('/')
sanitized_path_elements = raw_path_elements.map do |element| sanitized_path_elements = raw_path_elements.map do |element|

View File

@ -25,7 +25,7 @@ module ArchiveAPI
# Check if the response contains the header ["timestamp", "original"] # Check if the response contains the header ["timestamp", "original"]
json.shift if json.first == ["timestamp", "original"] json.shift if json.first == ["timestamp", "original"]
json json
rescue JSON::ParserError, StandardError => e rescue JSON::ParserError => e
warn "Failed to fetch data from API: #{e.message}" warn "Failed to fetch data from API: #{e.message}"
[] []
end end