Fix link sanitization for outgoing text/html and text/markdown toots
Fixes #1739
This commit is contained in:
		
							parent
							
								
									9309c53d21
								
							
						
					
					
						commit
						f2b2614d0a
					
				
					 2 changed files with 10 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -133,7 +133,7 @@ class Sanitize
 | 
			
		|||
      rel += ['nofollow', 'noopener', 'noreferrer'] unless TagManager.instance.local_url?(node['href'])
 | 
			
		||||
 | 
			
		||||
      if rel.empty?
 | 
			
		||||
        node['rel']&.delete
 | 
			
		||||
        node.remove_attribute('rel')
 | 
			
		||||
      else
 | 
			
		||||
        node['rel'] = rel.join(' ')
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -144,7 +144,7 @@ class Sanitize
 | 
			
		|||
 | 
			
		||||
      node = env[:node]
 | 
			
		||||
      if node['target'] != '_blank' && TagManager.instance.local_url?(node['href'])
 | 
			
		||||
        node['target']&.delete
 | 
			
		||||
        node.remove_attribute('target')
 | 
			
		||||
      else
 | 
			
		||||
        node['target'] = '_blank'
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,6 +50,14 @@ RSpec.describe AdvancedTextFormatter do
 | 
			
		|||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      context 'given text with a local-domain mention' do
 | 
			
		||||
        let(:text) { 'foo https://cb6e6126.ngrok.io/about/more' }
 | 
			
		||||
 | 
			
		||||
        it 'creates a link' do
 | 
			
		||||
          is_expected.to include '<a href="https://cb6e6126.ngrok.io/about/more"'
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      context 'given text containing linkable mentions' do
 | 
			
		||||
        let(:preloaded_accounts) { [Fabricate(:account, username: 'alice')] }
 | 
			
		||||
        let(:text) { '@alice' }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue