[Launchpad-reviewers] [Merge] lp:~cjwatson/launchpad/bing-xss into lp:launchpad

2018-04-10 Thread noreply
The proposal to merge lp:~cjwatson/launchpad/bing-xss into lp:launchpad has 
been updated.

Status: Needs review => Merged

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/bing-xss/+merge/342950
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~cjwatson/launchpad/bing-xss into lp:launchpad.

___
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-reviewers] [Merge] lp:~cjwatson/launchpad/bing-xss into lp:launchpad

2018-04-10 Thread Maximiliano Bertacchini
Thanks!
-- 
https://code.launchpad.net/~cjwatson/launchpad/bing-xss/+merge/342950
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~cjwatson/launchpad/bing-xss into lp:launchpad.

___
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-reviewers] [Merge] lp:~cjwatson/launchpad/bing-xss into lp:launchpad

2018-04-10 Thread Maximiliano Bertacchini
Review: Approve

LGTM. An extra test in sitesearch/tests/test_bing.py would be great though.
-- 
https://code.launchpad.net/~cjwatson/launchpad/bing-xss/+merge/342950
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~cjwatson/launchpad/bing-xss into lp:launchpad.

___
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp


[Launchpad-reviewers] [Merge] lp:~cjwatson/launchpad/bing-xss into lp:launchpad

2018-04-10 Thread Colin Watson
Colin Watson has proposed merging lp:~cjwatson/launchpad/bing-xss into 
lp:launchpad.

Commit message:
Fix XSS in presentation of Bing search results.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/bing-xss/+merge/342950

This slipped through due to a mismatch in escaping conventions between the 
Google and Bing APIs.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~cjwatson/launchpad/bing-xss into lp:launchpad.
=== modified file 'lib/lp/services/sitesearch/__init__.py'
--- lib/lp/services/sitesearch/__init__.py	2018-03-27 17:43:27 +
+++ lib/lp/services/sitesearch/__init__.py	2018-04-10 16:34:58 +
@@ -39,6 +39,7 @@
 urlfetch,
 )
 from lp.services.webapp import urlparse
+from lp.services.webapp.escaping import structured
 
 
 @implementer(ISearchResult)
@@ -489,6 +490,11 @@
 # should not be indexed.
 continue
 summary = summary.replace('', '')
+# Strings in Bing's search results are unescaped by default.  We
+# could alternatively fix this by sending textFormat=HTML, but
+# let's just do our own escaping for now.
+title = structured('%s', title).escapedtext
+summary = structured('%s', summary).escapedtext
 page_matches.append(PageMatch(title, url, summary))
 
 return PageMatches(page_matches, start, total)

=== modified file 'lib/lp/services/sitesearch/doc/bing-searchservice.txt'
--- lib/lp/services/sitesearch/doc/bing-searchservice.txt	2018-03-28 21:28:12 +
+++ lib/lp/services/sitesearch/doc/bing-searchservice.txt	2018-04-10 16:34:58 +
@@ -348,6 +348,22 @@
 >>> len(page_matches)
 0
 
+The 'snippet' is not HTML-escaped; we must do that ourselves.
+
+>>> json_file_name = path.join(base_path, 'bingsearchservice-xss.json')
+>>> with open(json_file_name, 'r') as json_file:
+... data = json_file.read()
+>>> page_matches = bing_search._parse_bing_response(data)
+>>> len(page_matches)
+1
+>>> page_matches[0].title
+u'Bug #1349491 \u201c[OSSA 2014-027] Persistent XSS in the Host
+Aggrega...\u201d : Bugs ...'
+>>> page_matches[0].summary
+u'* Enter some name and an availability zone like this:
+svg onload=alert(1) * Save ... - Persistent XSS in the Host
+Aggregates interface (CVE-2014-3594) + ...'
+
 
 -
 URL rewriting

=== added file 'lib/lp/services/sitesearch/tests/data/bingsearchservice-xss.json'
--- lib/lp/services/sitesearch/tests/data/bingsearchservice-xss.json	1970-01-01 00:00:00 +
+++ lib/lp/services/sitesearch/tests/data/bingsearchservice-xss.json	2018-04-10 16:34:58 +
@@ -0,0 +1,20 @@
+{
+  "_type": "SearchResponse",
+  "webPages": {
+"totalEstimatedMatches": -25,
+"value": [
+  {
+"id": "https://api.cognitive.microsoft.com/api/v7/#WebPages.0;,
+"name": "Bug #1349491 “[OSSA 2014-027] Persistent  in the Host Aggrega...” : Bugs ...",
+"url": "https://bugs.launchpad.net/horizon/+bug/1349491;,
+"urlPingSuffix": "DevEx,5154.1",
+"isFamilyFriendly": true,
+"displayUrl": "https://bugs.launchpad.net/horizon/+bug/1349491;,
+"snippet": "* Enter some name and an availability zone like this:  * Save ... - Persistent XSS in the Host Aggregates interface (CVE-2014-3594) + ...",
+"dateLastCrawled": "2018-02-28T04:31:00.000Z",
+"fixedPosition": false,
+"language": "en"
+  }
+]
+  }
+}

___
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp