caddy/caddyhttp
Matt Holt 82cbd7a96b Detect HTTPS interception (#1430)
* WIP: Implement HTTPS interception detection by Durumeric, et. al.

Special thanks to @FiloSottile for guidance with the custom listener.

* Add {{.IsMITM}} context action and {mitm} placeholder

* Improve MITM detection heuristics for Firefox and Edge

* Add tests for MITM detection heuristics

* Improve Safari heuristics for interception detection

* Read ClientHello during first Read() instead of during Accept()

As far as I can tell, reading the ClientHello during Accept() prevents
new connections from being accepted during the read. Since Read() should
be called in its own goroutine, this keeps Accept() non-blocking.

* Clean up MITM detection handler; make possible to close connection

* Use standard lib cipher suite values when possible

* Improve Edge heuristics and test cases

* Refactor MITM checking logic; add some debug statements for now

* Fix bug in MITM heuristic tests and actual heuristic code

* Fix gofmt

* Remove debug statements; preparing for merge
2017-02-17 14:07:57 -07:00
..
basicauth basicauth: Remove Authorization header on successful authz (issue #1324) 2017-01-03 17:47:27 -07:00
bind Refactor how caddy.Context is stored and used 2016-06-20 11:59:23 -06:00
browse browse: Sanitize file names and links in default template 2017-01-23 22:37:46 -07:00
errors Roll all logs by default (#1379) 2017-02-08 09:23:33 -07:00
expvar Refactor how caddy.Context is stored and used 2016-06-20 11:59:23 -06:00
extensions Fix misspellings 2016-09-05 10:20:34 -06:00
fastcgi Add root option to fastcgi directive (#1337) 2017-01-17 10:34:17 -07:00
gzip HTTP/2 push support (golang 1.8) (#1215) 2017-02-17 09:25:22 -07:00
header HTTP/2 push support (golang 1.8) (#1215) 2017-02-17 09:25:22 -07:00
httpserver Detect HTTPS interception (#1430) 2017-02-17 14:07:57 -07:00
internalsrv Feature #1246 - Remote syslog (#1301) 2017-02-08 08:02:09 -07:00
log Roll all logs by default (#1379) 2017-02-08 09:23:33 -07:00
markdown Feature #1246 - Remote syslog (#1301) 2017-02-08 08:02:09 -07:00
maxrequestbody Add maxrequestbody directive (#1163) 2016-11-04 08:25:49 +08:00
mime Refactor how caddy.Context is stored and used 2016-06-20 11:59:23 -06:00
pprof pprof: Set proper Content-Type header 2017-01-24 16:55:43 -07:00
proxy proxy: handle encoded path in URL 2017-02-17 09:41:00 +08:00
push HTTP/2 push support (golang 1.8) (#1215) 2017-02-17 09:25:22 -07:00
redirect Merge pull request #1365 from tw4452852/1297 2017-02-15 17:59:29 -07:00
rewrite Introduce new Replacer fields {rewrite_path}, {rewrite_path_escaped}; issue #1185 (#1364) 2017-01-23 22:15:27 -07:00
root fixing panic when root is symlink (#1429) 2017-02-15 22:02:51 -07:00
staticfiles add fix from golang/go 2017-02-10 21:02:00 -06:00
status Add 'status' middleware instead of 'status' directive for 'rewrite' middleware 2016-08-29 17:17:23 +03:00
templates Refactor how caddy.Context is stored and used 2016-06-20 11:59:23 -06:00
timeouts New 'timeouts' directive to configure timeouts; default timeouts enabled (#1368) 2017-01-24 08:15:25 -07:00
websocket Fix misspellings 2016-09-05 10:20:34 -06:00
caddyhttp_test.go HTTP/2 push support (golang 1.8) (#1215) 2017-02-17 09:25:22 -07:00
caddyhttp.go HTTP/2 push support (golang 1.8) (#1215) 2017-02-17 09:25:22 -07:00