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

Side by Side Diff: net/base/net_util.cc

Issue 780943003: Revert of Block port 443 for all protocols other than HTTPS or WSS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « net/base/net_util.h ('k') | net/http/http_stream_factory_impl_job.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) 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 #include "net/base/net_util.h" 5 #include "net/base/net_util.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 113, // auth 100 113, // auth
101 115, // sftp 101 115, // sftp
102 117, // uucp-path 102 117, // uucp-path
103 119, // nntp 103 119, // nntp
104 123, // NTP 104 123, // NTP
105 135, // loc-srv /epmap 105 135, // loc-srv /epmap
106 139, // netbios 106 139, // netbios
107 143, // imap2 107 143, // imap2
108 179, // BGP 108 179, // BGP
109 389, // ldap 109 389, // ldap
110 443, // https / wss (see https://crbug.com/436451)
111 465, // smtp+ssl 110 465, // smtp+ssl
112 512, // print / exec 111 512, // print / exec
113 513, // login 112 513, // login
114 514, // shell 113 514, // shell
115 515, // printer 114 515, // printer
116 526, // tempo 115 526, // tempo
117 530, // courier 116 530, // courier
118 531, // chat 117 531, // chat
119 532, // netnews 118 532, // netnews
120 540, // uucp 119 540, // uucp
(...skipping 17 matching lines...) Expand all
138 // third_party/WebKit/Source/platform/weborigin/KURL.cpp, 137 // third_party/WebKit/Source/platform/weborigin/KURL.cpp,
139 // KURL::port()) 138 // KURL::port())
140 }; 139 };
141 140
142 // FTP overrides the following restricted ports. 141 // FTP overrides the following restricted ports.
143 static const int kAllowedFtpPorts[] = { 142 static const int kAllowedFtpPorts[] = {
144 21, // ftp data 143 21, // ftp data
145 22, // ssh 144 22, // ssh
146 }; 145 };
147 146
148 // HTTPS and WSS override the following restricted port.
149 static const int kAllowedHttpsOrWssPorts[] = {
150 443, // https / wss
151 };
152
153 bool IPNumberPrefixCheck(const IPAddressNumber& ip_number, 147 bool IPNumberPrefixCheck(const IPAddressNumber& ip_number,
154 const unsigned char* ip_prefix, 148 const unsigned char* ip_prefix,
155 size_t prefix_length_in_bits) { 149 size_t prefix_length_in_bits) {
156 // Compare all the bytes that fall entirely within the prefix. 150 // Compare all the bytes that fall entirely within the prefix.
157 int num_entire_bytes_in_prefix = prefix_length_in_bits / 8; 151 int num_entire_bytes_in_prefix = prefix_length_in_bits / 8;
158 for (int i = 0; i < num_entire_bytes_in_prefix; ++i) { 152 for (int i = 0; i < num_entire_bytes_in_prefix; ++i) {
159 if (ip_number[i] != ip_prefix[i]) 153 if (ip_number[i] != ip_prefix[i])
160 return false; 154 return false;
161 } 155 }
162 156
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 int array_size = arraysize(kAllowedFtpPorts); 313 int array_size = arraysize(kAllowedFtpPorts);
320 for (int i = 0; i < array_size; i++) { 314 for (int i = 0; i < array_size; i++) {
321 if (kAllowedFtpPorts[i] == port) { 315 if (kAllowedFtpPorts[i] == port) {
322 return true; 316 return true;
323 } 317 }
324 } 318 }
325 // Port not explicitly allowed by FTP, so return the default restrictions. 319 // Port not explicitly allowed by FTP, so return the default restrictions.
326 return IsPortAllowedByDefault(port); 320 return IsPortAllowedByDefault(port);
327 } 321 }
328 322
329 bool IsPortAllowedByHttpsOrWss(int port) {
330 int array_size = arraysize(kAllowedHttpsOrWssPorts);
331 for (int i = 0; i < array_size; i++) {
332 if (kAllowedHttpsOrWssPorts[i] == port) {
333 return true;
334 }
335 }
336 // Port not explicitly allowed by HTTPS or WSS, so return the default
337 // restrictions.
338 return IsPortAllowedByDefault(port);
339 }
340
341 bool IsEffectivePortAllowedByScheme(const GURL& url) {
342 int port = url.EffectiveIntPort();
343 if (url.SchemeIs("ftp")) {
344 return IsPortAllowedByFtp(port);
345 } else if (url.SchemeIs("https") || url.SchemeIs("wss")) {
346 return IsPortAllowedByHttpsOrWss(port);
347 } else {
348 return IsPortAllowedByDefault(port);
349 }
350 }
351
352 bool IsPortAllowedByOverride(int port) { 323 bool IsPortAllowedByOverride(int port) {
353 if (g_explicitly_allowed_ports.Get().empty()) 324 if (g_explicitly_allowed_ports.Get().empty())
354 return false; 325 return false;
355 326
356 return g_explicitly_allowed_ports.Get().count(port) > 0; 327 return g_explicitly_allowed_ports.Get().count(port) > 0;
357 } 328 }
358 329
359 int SetNonBlocking(int fd) { 330 int SetNonBlocking(int fd) {
360 #if defined(OS_WIN) 331 #if defined(OS_WIN)
361 unsigned long no_block = 1; 332 unsigned long no_block = 1;
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after
1085 1056
1086 unsigned MaskPrefixLength(const IPAddressNumber& mask) { 1057 unsigned MaskPrefixLength(const IPAddressNumber& mask) {
1087 IPAddressNumber all_ones(mask.size(), 0xFF); 1058 IPAddressNumber all_ones(mask.size(), 0xFF);
1088 return CommonPrefixLength(mask, all_ones); 1059 return CommonPrefixLength(mask, all_ones);
1089 } 1060 }
1090 1061
1091 ScopedWifiOptions::~ScopedWifiOptions() { 1062 ScopedWifiOptions::~ScopedWifiOptions() {
1092 } 1063 }
1093 1064
1094 } // namespace net 1065 } // namespace net
OLDNEW
« no previous file with comments | « net/base/net_util.h ('k') | net/http/http_stream_factory_impl_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698