From deaa65660822e070294d6c2a7dfec286cbbdff56 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 28 Mar 2022 18:36:56 +0900 Subject: [ruby/rdoc] Escape TIDYLINKs https://hackerone.com/reports/1187156 https://github.com/ruby/rdoc/commit/1ad2dd3ca2 --- test/rdoc/test_rdoc_markup_to_html.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'test') diff --git a/test/rdoc/test_rdoc_markup_to_html.rb b/test/rdoc/test_rdoc_markup_to_html.rb index 02baf13512..8a38694c45 100644 --- a/test/rdoc/test_rdoc_markup_to_html.rb +++ b/test/rdoc/test_rdoc_markup_to_html.rb @@ -704,6 +704,23 @@ EXPECTED assert_equal "\n

ruby-lang

\n", result end + def test_convert_TIDYLINK_escape_text + assert_escaped '}[a]' + assert_escaped '[[]' + end + + def test_convert_TIDYLINK_escape_javascript + assert_not_include '{click}[javascript:alert`javascript_scheme`]', 'aaa[:symbol]

\n", @to.convert('+aaa+[:symbol]') assert_equal "\n

aaa[:symbol]

\n", @to.convert('+aaa[:symbol]+') @@ -903,5 +920,11 @@ EXPECTED assert_include(res[%r<]*>.*em.*>], 'em') assert_include(res[%r<]*>.*strong.*>], 'strong') end + + def assert_escaped(unexpected, code) + result = @to.convert(code) + assert_not_include result, unexpected + assert_include result, CGI.escapeHTML(unexpected) + end end -- cgit v1.2.3