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

Side by Side Diff: chrome/browser/safe_browsing/client_side_detection_service.cc

Issue 7866011: Switch to the new client-side phishing model that uses Murmurhash for word hashes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile problems and add another test Created 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/client_side_detection_service_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/safe_browsing/client_side_detection_service.h" 5 #include "chrome/browser/safe_browsing/client_side_detection_service.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 const base::TimeDelta ClientSideDetectionService::kReportsInterval = 45 const base::TimeDelta ClientSideDetectionService::kReportsInterval =
46 base::TimeDelta::FromDays(1); 46 base::TimeDelta::FromDays(1);
47 const base::TimeDelta ClientSideDetectionService::kNegativeCacheInterval = 47 const base::TimeDelta ClientSideDetectionService::kNegativeCacheInterval =
48 base::TimeDelta::FromDays(1); 48 base::TimeDelta::FromDays(1);
49 const base::TimeDelta ClientSideDetectionService::kPositiveCacheInterval = 49 const base::TimeDelta ClientSideDetectionService::kPositiveCacheInterval =
50 base::TimeDelta::FromMinutes(30); 50 base::TimeDelta::FromMinutes(30);
51 51
52 const char ClientSideDetectionService::kClientReportPhishingUrl[] = 52 const char ClientSideDetectionService::kClientReportPhishingUrl[] =
53 "https://sb-ssl.google.com/safebrowsing/clientreport/phishing"; 53 "https://sb-ssl.google.com/safebrowsing/clientreport/phishing";
54 // Note: when updatng the model version, don't forget to change the filename
55 // in chrome/common/chrome_constants.cc as well, or else existing users won't
56 // download the new model.
57 const char ClientSideDetectionService::kClientModelUrl[] = 54 const char ClientSideDetectionService::kClientModelUrl[] =
58 "https://ssl.gstatic.com/safebrowsing/csd/client_model_v3.pb"; 55 "https://ssl.gstatic.com/safebrowsing/csd/client_model_v4.pb";
59 56
60 struct ClientSideDetectionService::ClientReportInfo { 57 struct ClientSideDetectionService::ClientReportInfo {
61 scoped_ptr<ClientReportPhishingRequestCallback> callback; 58 scoped_ptr<ClientReportPhishingRequestCallback> callback;
62 GURL phishing_url; 59 GURL phishing_url;
63 }; 60 };
64 61
65 ClientSideDetectionService::CacheState::CacheState(bool phish, base::Time time) 62 ClientSideDetectionService::CacheState::CacheState(bool phish, base::Time time)
66 : is_phishing(phish), 63 : is_phishing(phish),
67 timestamp(time) {} 64 timestamp(time) {}
68 65
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 model.rule(i).feature(j) > max_index) { 591 model.rule(i).feature(j) > max_index) {
595 return false; 592 return false;
596 } 593 }
597 } 594 }
598 } 595 }
599 for (int i = 0; i < model.page_term_size(); ++i) { 596 for (int i = 0; i < model.page_term_size(); ++i) {
600 if (model.page_term(i) < 0 || model.page_term(i) > max_index) { 597 if (model.page_term(i) < 0 || model.page_term(i) > max_index) {
601 return false; 598 return false;
602 } 599 }
603 } 600 }
604 for (int i = 0; i < model.page_word_size(); ++i) {
605 if (model.page_word(i) < 0 || model.page_word(i) > max_index) {
606 return false;
607 }
608 }
609 return true; 601 return true;
610 } 602 }
611 603
612 // static 604 // static
613 bool ClientSideDetectionService::IsFalsePositiveResponse( 605 bool ClientSideDetectionService::IsFalsePositiveResponse(
614 const GURL& url, 606 const GURL& url,
615 const ClientPhishingResponse& response) { 607 const ClientPhishingResponse& response) {
616 if (!response.phishy() || response.whitelist_expression_size() == 0) { 608 if (!response.phishy() || response.whitelist_expression_size() == 0) {
617 return false; 609 return false;
618 } 610 }
(...skipping 29 matching lines...) Expand all
648 &whitelist_patterns); 640 &whitelist_patterns);
649 for (size_t j = 0; j < whitelist_patterns.size(); ++j) { 641 for (size_t j = 0; j < whitelist_patterns.size(); ++j) {
650 if (whitelist_patterns[j] == canonical_url_as_pattern) { 642 if (whitelist_patterns[j] == canonical_url_as_pattern) {
651 return true; 643 return true;
652 } 644 }
653 } 645 }
654 } 646 }
655 return false; 647 return false;
656 } 648 }
657 } // namespace safe_browsing 649 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/client_side_detection_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698