Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5123)

Unified Diff: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm

Issue 2346023002: Ignore Javascript urls dropped on tabs (Mac version) (Closed)
Patch Set: Address feedback Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
index f52d2b9526d9caf3ff25cfc48aa8a7c2b647416c..f879a2b2f1ea8a11f877a9ffec7951116165edbd 100644
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
@@ -1150,10 +1150,13 @@ class NotificationBridge : public AppMenuIconController::Delegate {
GURL url(url_formatter::FixupURL(
base::SysNSStringToUTF8([urls objectAtIndex:0]), std::string()));
+ // Security: Sanitize text to prevent self-XSS.
if (url.SchemeIs(url::kJavaScriptScheme)) {
browser_->window()->GetLocationBar()->GetOmniboxView()->SetUserText(
OmniboxView::StripJavascriptSchemas(base::UTF8ToUTF16(url.spec())));
+ return;
}
+
OpenURLParams params(url, Referrer(), WindowOpenDisposition::CURRENT_TAB,
ui::PAGE_TRANSITION_TYPED, false);
browser_->tab_strip_model()->GetActiveWebContents()->OpenURL(params);
@@ -1172,6 +1175,9 @@ class NotificationBridge : public AppMenuIconController::Delegate {
metrics::OmniboxEventProto::BLANK, &match, NULL);
GURL url(match.destination_url);
+ // Security: Block JavaScript to prevent self-XSS.
+ if (url.SchemeIs(url::kJavaScriptScheme)) return;
+
OpenURLParams params(url, Referrer(), WindowOpenDisposition::CURRENT_TAB,
ui::PAGE_TRANSITION_TYPED, false);
browser_->tab_strip_model()->GetActiveWebContents()->OpenURL(params);

Powered by Google App Engine
This is Rietveld 408576698