Skip to content
Snippets Groups Projects
Commit 361949ab authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Merge branch 'security-11-7-22076-sanitize-url-in-names' into 'security-11-7'

[11.7] Sanitize user full name to clean up any URL to prevent mail clients from auto-linking URLs

See merge request gitlab/gitlabhq!2828

(cherry picked from commit a38c1f3567a2c89eeb82dc79ca9f0bf620acbb5a)

1c1b45da Add `sanitize_name` helper to sanitize URLs in user full name
aa974e9a Use `sanitize_name` to sanitize URL in user full name
0a09919e Add changelog entry
parent a3f52d8a
No related branches found
No related tags found
No related merge requests found
Showing
with 34 additions and 26 deletions
Loading
Loading
@@ -36,6 +36,14 @@ module EmailsHelper
nil
end
 
def sanitize_name(name)
if name =~ URI::DEFAULT_PARSER.regexp[:URI_REF]
name.tr('.', '_')
else
name
end
end
def password_reset_token_valid_time
valid_hours = Devise.reset_password_within / 60 / 60
if valid_hours >= 24
Loading
Loading
#content
= email_default_heading("#{@resource.user.name}, you've added an additional email!")
= email_default_heading("#{sanitize_name(@resource.user.name)}, you've added an additional email!")
%p Click the link below to confirm your email address (#{@resource.email})
#cta
= link_to 'Confirm your email address', confirmation_url(@resource, confirmation_token: @token)
Loading
Loading
Loading
Loading
@@ -3,7 +3,7 @@
 
<% discussion = note.discussion if note.part_of_discussion? -%>
<% if discussion && !discussion.individual_note? -%>
<%= note.author_name -%>
<%= sanitize_name(note.author_name) -%>
<% if discussion.new_discussion? -%>
<%= " started a new discussion" -%>
<% else -%>
Loading
Loading
@@ -16,7 +16,7 @@
 
 
<% elsif Gitlab::CurrentSettings.email_author_in_body -%>
<%= "#{note.author_name} commented:" -%>
<%= "#{sanitize_name(note.author_name)} commented:" -%>
 
 
<% end -%>
Loading
Loading
Loading
Loading
@@ -3,7 +3,7 @@ Auto DevOps pipeline was disabled for <%= @project.name %>
The Auto DevOps pipeline failed for pipeline <%= @pipeline.iid %> (<%= pipeline_url(@pipeline) %>) and has been disabled for <%= @project.name %>. In order to use the Auto DevOps pipeline with your project, please review the currently supported languagues (https://docs.gitlab.com/ee/topics/autodevops/#currently-supported-languages), adjust your project accordingly, and turn on the Auto DevOps pipeline within your CI/CD project settings (<%= project_settings_ci_cd_url(@project) %>).
 
<% if @pipeline.user -%>
Pipeline #<%= @pipeline.id %> ( <%= pipeline_url(@pipeline) %> ) triggered by <%= @pipeline.user.name %> ( <%= user_url(@pipeline.user) %> )
Pipeline #<%= @pipeline.id %> ( <%= pipeline_url(@pipeline) %> ) triggered by <%= sanitize_name(@pipeline.user.name) %> ( <%= user_url(@pipeline.user) %> )
<% else -%>
Pipeline #<%= @pipeline.id %> ( <%= pipeline_url(@pipeline) %> ) triggered by API
<% end -%>
Loading
Loading
%p
Issue was closed by #{@updated_by.name}
Issue was closed by #{sanitize_name(@updated_by.name)}
Issue was closed by #{@updated_by.name}
Issue was closed by #{sanitize_name(@updated_by.name)}
 
Issue ##{@issue.iid}: #{project_issue_url(@issue.project, @issue)}
%p
Merge Request #{@merge_request.to_reference} was closed by #{@updated_by.name}
Merge Request #{@merge_request.to_reference} was closed by #{sanitize_name(@updated_by.name)}
Merge Request #{@merge_request.to_reference} was closed by #{@updated_by.name}
Merge Request #{@merge_request.to_reference} was closed by #{sanitize_name(@updated_by.name)}
 
Merge Request url: #{project_merge_request_url(@merge_request.target_project, @merge_request)}
 
= merge_path_description(@merge_request, 'to')
 
Author: #{@merge_request.author_name}
Assignee: #{@merge_request.assignee_name}
Author: #{sanitize_name(@merge_request.author_name)}
Assignee: #{sanitize_name(@merge_request.assignee_name)}
%p
Issue was #{@issue_status} by #{@updated_by.name}
Issue was #{@issue_status} by #{sanitize_name(@updated_by.name)}
Issue was <%= @issue_status %> by <%= @updated_by.name %>
Issue was <%= @issue_status %> by <%= sanitize_name(@updated_by.name) %>
 
Issue <%= @issue.iid %>: <%= url_for(project_issue_url(@issue.project, @issue)) %>
 
<%= member.user.name %> (<%= user_url(member.user) %>) requested <%= member.human_access %> access to the <%= member_source.human_name %> <%= member_source.model_name.singular %>.
<%= sanitize_name(member.user.name) %> (<%= user_url(member.user) %>) requested <%= member.human_access %> access to the <%= member_source.human_name %> <%= member_source.model_name.singular %>.
 
<%= polymorphic_url([member_source, :members]) %>
<%= member.invite_email %>, now known as <%= member.user.name %>, has accepted your invitation to join the <%= member_source.human_name %> <%= member_source.model_name.singular %>.
<%= member.invite_email %>, now known as <%= sanitize_name(member.user.name) %>, has accepted your invitation to join the <%= member_source.human_name %> <%= member_source.model_name.singular %>.
 
<%= member_source.web_url %>
You have been invited <%= "by #{member.created_by.name} " if member.created_by %>to join the <%= member_source.human_name %> <%= member_source.model_name.singular %> as <%= member.human_access %>.
You have been invited <%= "by #{sanitize_name(member.created_by.name)} " if member.created_by %>to join the <%= member_source.human_name %> <%= member_source.model_name.singular %> as <%= member.human_access %>.
 
Accept invitation: <%= invite_url(@token) %>
Decline invitation: <%= decline_invite_url(@token) %>
%p
Merge Request #{@merge_request.to_reference} was #{@mr_status} by #{@updated_by.name}
Merge Request #{@merge_request.to_reference} was #{@mr_status} by #{sanitize_name(@updated_by.name)}
Merge Request #{@merge_request.to_reference} was #{@mr_status} by #{@updated_by.name}
Merge Request #{@merge_request.to_reference} was #{@mr_status} by #{sanitize_name(@updated_by.name)}
 
Merge Request url: #{project_merge_request_url(@merge_request.target_project, @merge_request)}
 
= merge_path_description(@merge_request, 'to')
 
Author: #{@merge_request.author_name}
Assignee: #{@merge_request.assignee_name}
Author: #{sanitize_name(@merge_request.author_name)}
Assignee: #{sanitize_name(@merge_request.assignee_name)}
Loading
Loading
@@ -4,5 +4,5 @@ Merge Request url: #{project_merge_request_url(@merge_request.target_project, @m
 
= merge_path_description(@merge_request, 'to')
 
Author: #{@merge_request.author_name}
Assignee: #{@merge_request.assignee_name}
Author: #{sanitize_name(@merge_request.author_name)}
Assignee: #{sanitize_name(@merge_request.assignee_name)}
Loading
Loading
@@ -4,5 +4,5 @@ Merge Request url: #{project_merge_request_url(@merge_request.target_project, @m
 
= merge_path_description(@merge_request, 'to')
 
Author: #{@merge_request.author_name}
Assignee: #{@merge_request.assignee_name}
Author: #{sanitize_name(@merge_request.author_name)}
Assignee: #{sanitize_name(@merge_request.assignee_name)}
%p
Hi #{@user.name}!
Hi #{sanitize_name(@user.name)}!
%p
A new GPG key was added to your account:
%p
Loading
Loading
Hi <%= @user.name %>!
Hi <%= sanitize_name(@user.name) %>!
 
A new GPG key was added to your account:
 
Loading
Loading
New Issue was created.
 
Issue <%= @issue.iid %>: <%= url_for(project_issue_url(@issue.project, @issue)) %>
Author: <%= @issue.author_name %>
Author: <%= sanitize_name(@issue.author_name) %>
Assignee: <%= @issue.assignee_list %>
 
<%= @issue.description %>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment