mirror of
https://github.com/m13253/dns-over-https.git
synced 2026-03-30 16:25:39 +00:00
Reduce source address reveal
This commit is contained in:
@@ -81,6 +81,7 @@ func (s *Server) handlerFunc(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
|
||||
w.Header().Set("Server", "DNS-over-HTTPS/1.0 (+https://github.com/m13253/dns-over-https)")
|
||||
w.Header().Set("X-Powered-By", "DNS-over-HTTPS/1.0 (+https://github.com/m13253/dns-over-https)")
|
||||
w.Header().Set("Vary", "X-Edns-Client-Subnet")
|
||||
|
||||
name := r.FormValue("name")
|
||||
if name == "" {
|
||||
@@ -204,6 +205,9 @@ func (s *Server) handlerFunc(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Cache-Control", "max-age=" + strconv.Itoa(int(respJson.LeastTTL)))
|
||||
w.Header().Set("Expires", respJson.EarliestExpires.Format(time.RFC1123))
|
||||
}
|
||||
if respJson.EdnsClientSubnet != "" {
|
||||
w.Header().Set("X-Edns-Client-Subnet", respJson.EdnsClientSubnet)
|
||||
}
|
||||
w.Write(respStr)
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
package jsonDNS
|
||||
|
||||
import (
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -77,7 +78,8 @@ func Marshal(msg *dns.Msg) *Response {
|
||||
for _, option := range opt.Option {
|
||||
if option.Option() == dns.EDNS0SUBNET {
|
||||
edns0 := option.(*dns.EDNS0_SUBNET)
|
||||
resp.EdnsClientSubnet = edns0.Address.String() + "/" + strconv.Itoa(int(edns0.SourceScope))
|
||||
scopeMask := net.CIDRMask(int(edns0.SourceScope), len(edns0.Address))
|
||||
resp.EdnsClientSubnet = edns0.Address.Mask(scopeMask).String() + "/" + strconv.Itoa(int(edns0.SourceScope))
|
||||
}
|
||||
}
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user