Fix handling of malformed ActivityPub payloads when URIs are nil (#7370)
* Fix handling of malformed ActivityPub payloads when URIs are nil * Gracefully handle JSON-LD canonicalization failures
This commit is contained in:
		| @@ -34,6 +34,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService | ||||
|   end | ||||
|  | ||||
|   def trustworthy_attribution?(uri, attributed_to) | ||||
|     return false if uri.nil? || attributed_to.nil? | ||||
|     Addressable::URI.parse(uri).normalized_host.casecmp(Addressable::URI.parse(attributed_to).normalized_host).zero? | ||||
|   end | ||||
|  | ||||
|   | ||||
| @@ -45,5 +45,8 @@ class ActivityPub::ProcessCollectionService < BaseService | ||||
|  | ||||
|   def verify_account! | ||||
|     @account = ActivityPub::LinkedDataSignature.new(@json).verify_account! | ||||
|   rescue JSON::LD::JsonLdError => e | ||||
|     Rails.logger.debug "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}" | ||||
|     nil | ||||
|   end | ||||
| end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user