Mercurial > hg
diff mercurial/templates/paper/fileannotate.tmpl @ 18526:9409aeaafdc1 stable
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Without this, repository paths or names containing e.g. & characters or html
tags yielded strange results, possibly allowing cross-site scripting attacks.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 01 Feb 2013 20:43:35 +0100 |
parents | bebb05a7e249 |
children | 52305554fd6e |
line wrap: on
line diff
--- a/mercurial/templates/paper/fileannotate.tmpl Fri Feb 01 15:14:05 2013 -0600 +++ b/mercurial/templates/paper/fileannotate.tmpl Fri Feb 01 20:43:35 2013 +0100 @@ -7,31 +7,31 @@ <div class="menu"> <div class="logo"> <a href="{logourl}"> -<img src="{staticurl}{logoimg}" alt="mercurial" /></a> +<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a> </div> <ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +<li><a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li><a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> +<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> </ul> <ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +<li><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url|urlescape}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> </ul> <ul> -<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> -<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> -<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> -<li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> +<li><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> +<li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> +<li><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> +<li><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> <li class="active">annotate</li> -<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> -<li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li> +<li><a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> +<li><a href="{url|urlescape}raw-annotate/{node|short}/{file|urlescape}">raw</a></li> </ul> <ul> -<li><a href="{url}help{sessionvars%urlparameter}">help</a></li> +<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> </ul> </div> @@ -39,7 +39,7 @@ <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2> <h3>annotate {file|escape} @ {rev}:{node|short}</h3> -<form class="search" action="{url}log"> +<form class="search" action="{url|urlescape}log"> {sessionvars%hiddenformentry} <p><input name="rev" id="search1" type="text" size="30" /></p> <div id="hint">find changesets by author, revision,