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

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

Issue 2346023002: Ignore Javascript urls dropped on tabs (Mac version) (Closed)
Patch Set: 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..e50e8b6ce9d73fd946ac385b75348dc96260f8e0 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
Avi (use Gerrit) 2016/09/16 18:31:09 Comments are full sentences; end them with a full-
elawrence 2016/09/16 19:02:16 Done.
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,11 @@ class NotificationBridge : public AppMenuIconController::Delegate {
metrics::OmniboxEventProto::BLANK, &match, NULL);
GURL url(match.destination_url);
+ // Security: Block JavaScript to prevent self-XSS
Avi (use Gerrit) 2016/09/16 18:31:09 ditto.
elawrence 2016/09/16 19:02:16 Done.
+ 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