OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Client side phishing and malware detection request and response | 5 // This proto file includes: |
Nathan Parker
2015/11/05 19:43:13
nit: Maybe there's a better name for this proto no
Jialiu Lin
2015/11/05 21:18:57
I feel it makes more sense to call it csd.proto, s
| |
6 // protocol buffers. Those protocol messages should be kept in sync | 6 // (1) Client side phishing and malware detection request and response |
7 // with the server implementation. | 7 // protocol buffers. Those protocol messages should be kept in sync |
8 // with the server implementation. | |
9 // | |
10 // (2) Safe Browsing reporting protocol buffers. | |
11 // A ClientSafeBrowsingReportRequest is sent when a user opts-in to | |
12 // sending detailed threat reports from the safe browsing interstitial page. | |
13 // It is a list of Resource messages, which may contain the url of a | |
14 // resource such as the page in the address bar or any other resource | |
15 // that was loaded for this page. | |
16 // In addition to the url, a resource can contain HTTP request and response | |
17 // headers and bodies. | |
8 // | 18 // |
9 // If you want to change this protocol definition or you have questions | 19 // If you want to change this protocol definition or you have questions |
10 // regarding its format please contact chrome-anti-phishing@googlegroups.com. | 20 // regarding its format please contact chrome-anti-phishing@googlegroups.com. |
11 | 21 |
12 syntax = "proto2"; | 22 syntax = "proto2"; |
13 | 23 |
14 option optimize_for = LITE_RUNTIME; | 24 option optimize_for = LITE_RUNTIME; |
15 | 25 |
16 package safe_browsing; | 26 package safe_browsing; |
17 | 27 |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
627 message EnvironmentRequest { optional int32 dll_index = 1; } | 637 message EnvironmentRequest { optional int32 dll_index = 1; } |
628 | 638 |
629 repeated EnvironmentRequest environment_requests = 3; | 639 repeated EnvironmentRequest environment_requests = 3; |
630 } | 640 } |
631 | 641 |
632 message DownloadMetadata { | 642 message DownloadMetadata { |
633 optional uint32 download_id = 1; | 643 optional uint32 download_id = 1; |
634 | 644 |
635 optional ClientIncidentReport.DownloadDetails download = 2; | 645 optional ClientIncidentReport.DownloadDetails download = 2; |
636 } | 646 } |
647 | |
648 // A Detailed Safebrowsing Report from clients. Chrome safebrowsing reports are | |
649 // only sent by Chrome users who have opted into extended Safe Browsing. | |
650 // This proto is replacing ClientMalwareReportRequest. | |
651 // Next tag: 12 | |
652 message ClientSafeBrowsingReportRequest { | |
653 // Note: A lot of the "optional" fields would make sense to be | |
654 // "required" instead. However, having them as optional allows the | |
655 // clients to send "stripped down" versions of the message in the | |
656 // future, if we want to. | |
657 | |
658 enum ReportType { | |
659 UNKNOWN = 0; | |
660 URL_PHISHING = 1; | |
661 URL_MALWARE = 2; | |
662 URL_UNWANTED = 3; | |
663 CLIENT_SIDE_PHISHING_URL = 4; | |
664 CLIENT_SIDE_MALWARE_URL = 5; | |
665 MALICIOUS_DOWNLOAD_RECOVERY = 6; | |
666 } | |
667 | |
668 message HTTPHeader { | |
669 required bytes name = 1; | |
670 optional bytes value = 2; | |
671 } | |
672 | |
673 message HTTPRequest { | |
674 message FirstLine { | |
675 optional bytes verb = 1; | |
676 optional bytes uri = 2; | |
677 optional bytes version = 3; | |
678 } | |
679 | |
680 optional FirstLine firstline = 1; | |
681 repeated HTTPHeader headers = 2; | |
682 optional bytes body = 3; | |
683 | |
684 // bodydigest and bodylength can be useful if the report does not | |
685 // contain the body itself. | |
686 optional bytes bodydigest = 4; // 32-byte hex md5 digest of body. | |
687 optional int32 bodylength = 5; // length of body. | |
688 } | |
689 | |
690 message HTTPResponse { | |
691 message FirstLine { | |
692 optional int32 code = 1; | |
693 optional bytes reason = 2; | |
694 optional bytes version = 3; | |
695 } | |
696 | |
697 optional FirstLine firstline = 1; | |
698 repeated HTTPHeader headers = 2; | |
699 optional bytes body = 3; | |
700 optional bytes bodydigest = 4; // 32-byte hex md5 digest of body. | |
701 optional int32 bodylength = 5; // length of body. | |
702 optional bytes remote_ip = 6; // IP of the server. | |
703 } | |
704 | |
705 message Resource { | |
706 required int32 id = 1; | |
707 optional string url = 2; | |
708 optional HTTPRequest request = 3; | |
709 optional HTTPResponse response = 4; | |
710 optional int32 parent_id = 5; | |
711 repeated int32 child_ids = 6; | |
712 optional string tag_name = 7; | |
713 } | |
714 | |
715 optional ReportType type = 10; | |
716 | |
717 // Only set if ReportType is MALICIOUS_DOWNLOAD_RECOVERY. | |
718 optional ClientDownloadResponse.Verdict download_verdict = 11; | |
719 | |
720 // URL of the page in the address bar. | |
721 optional string url = 1; | |
722 optional string page_url = 2; | |
723 optional string referrer_url = 3; | |
724 | |
725 repeated Resource resources = 4; | |
726 | |
727 // Whether the report is complete. | |
728 optional bool complete = 5; | |
729 | |
730 // The ASN and country of the client IP. These fields are filled up by | |
731 // csd_frontend | |
732 repeated string client_asn = 6; | |
733 optional string client_country = 7; | |
734 | |
735 // Whether user chose to proceed. | |
736 optional bool did_proceed = 8; | |
737 | |
738 // Whether user visited this origin before. | |
739 optional bool repeat_visit = 9; | |
740 } | |
OLD | NEW |