Comments (4)
Hey @amankapoor, it's definitely safe to have a single middleware with all your additional options set. The http.ListenAndServe
will always redirect to the HTTPS... check out the code in secure.go
. The Process(w http.ResponseWriter, r *http.Request)
function does the SSL check first and will exit early if the connection is NOT secure.
One suggestion I would make is to remove the SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"},
option from your implementation. That is used when nginx or a load balancer is in front of your app. But since you are setting up Go to handle the SSL termination, you won't need that line. This will also prevent outsiders from trying to include the X-Forwarded-Proto
header in requests in an attempt to trick your app into thinking it is on a secure connection.
If you remove that one line, your implementation looks very close to what I use in production! Let me know if this helps!
from secure.
Hi, thank you very much for the information, it really helped. Also, I would like to share that I am new to deploying, and I want to deploy my small apps on one t2.micro. So my research taught me that I need a reverse proxy like nginx to do this job. Although I have not yet started using nginx because I am spending time writing the app, but I think if I will keep X-Forwarded-Proto
header intact, then it won't harm.
from secure.
Sounds good! Should this issue be closed now?
from secure.
Yeah. Thank you for the help.
from secure.
Related Issues (20)
- Unexported `processRequest` does not allow modification of the request before next HOT 2
- HSTS seconds in docs is 10 years? HOT 1
- AllowedHost check wildcard for subdomains HOT 3
- use for microservices facing public HOT 2
- Gin accessing CSP nonce HOT 6
- Unnecessary redirect in SSL
- 不能用443端口吗? HOT 4
- ModifyResponseHeader rewrites response headers indiscriminately
- I encountered a problem when i try to install this pakage. HOT 2
- Static SecureHeaderKey does not allow multiple instances
- Bad Host (Cloudflare) HOT 2
- certificate bidirectional authentication HOT 1
- go.mod references codegangsta/negroni rather than urfave/negroni HOT 1
- Panic when accession newR.Context() HOT 2
- Support for Access-Control-Allow-Origin headers? HOT 3
- Add a Content Security Policy builder HOT 5
- Allow configure Permissions-Policy: headers
- SQL Injection detection based on payload HOT 3
- Any new releases? HOT 2
- Add Ability to pass a custom AllowedHosts function that returns a list
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from secure.