зеркало из https://github.com/microsoft/git.git
gitweb: escape html in rss title
The title of an RSS feed is generated from many components, including the filename provided as a query parameter, but we failed to quote it. Besides showing the wrong output, this is a vector for XSS attacks. Signed-off-by: Jeff King <peff@peff.net>
This commit is contained in:
Родитель
7e2010537e
Коммит
0f0ecf68b3
|
@ -8055,6 +8055,7 @@ sub git_feed {
|
|||
$feed_type = 'history';
|
||||
}
|
||||
$title .= " $feed_type";
|
||||
$title = esc_html($title);
|
||||
my $descr = git_get_project_description($project);
|
||||
if (defined $descr) {
|
||||
$descr = esc_html($descr);
|
||||
|
|
|
@ -185,5 +185,20 @@ test_expect_success 'forks: project_index lists all projects (incl. forks)' '
|
|||
test_cmp expected actual
|
||||
'
|
||||
|
||||
xss() {
|
||||
echo >&2 "Checking $1..." &&
|
||||
gitweb_run "$1" &&
|
||||
if grep "$TAG" gitweb.body; then
|
||||
echo >&2 "xss: $TAG should have been quoted in output"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
test_expect_success 'xss checks' '
|
||||
TAG="<magic-xss-tag>" &&
|
||||
xss "a=rss&p=$TAG" &&
|
||||
xss "a=rss&p=foo.git&f=$TAG"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче