-
-
Notifications
You must be signed in to change notification settings - Fork 660
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(secure-headers): remove "X-Powered-By" should be an option #3177
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3177 +/- ##
=======================================
Coverage 96.20% 96.20%
=======================================
Files 151 151
Lines 15068 15074 +6
Branches 2644 2631 -13
=======================================
+ Hits 14496 14502 +6
Misses 572 572 ☔ View full report in Codecov by Sentry. |
Reasonable thing to add the option. |
Thanks @ryuapp |
I think it's fine to have an option to disable this setting. However, it seems sufficient to achieve this through the extension of SecureHeadersOptions. |
how about this? |
Understood, this is what I had in mind. I didn't intend to manipulate the HEADERS_MAP interface SecureHeadersOptions {
// adding
removePoweredBy?: boolean
} export const secureHeaders = (secureHeadersOptions?: SecureHeadersOptions): MiddlewareHandler => {
secureHeadersOptions = { ...HEADERS_DEFAULT_OPTIONS, ...secureHeadersOptions }
const headersToSet = getFilteredHeaders(secureHeadersOptions)
const callbacks: SecureHeadersCallback[] = []
if (secureHeadersOptions.contentSecurityPolicy) {
const [callback, value] = getCSPDirectives(secureHeadersOptions.contentSecurityPolicy)
if (callback) {
callbacks.push(callback)
}
headersToSet.push(['Content-Security-Policy', value as string])
}
if (secureHeadersOptions.reportingEndpoints) {
headersToSet.push([
'Reporting-Endpoints',
getReportingEndpoints(secureHeadersOptions.reportingEndpoints),
])
}
if (secureHeadersOptions.reportTo) {
headersToSet.push(['Report-To', getReportToOptions(secureHeadersOptions.reportTo)])
}
return async function secureHeaders(ctx, next) {
// should evaluate callbacks before next()
// some callback calls ctx.set() for embedding nonce to the page
const headersToSetForReq =
callbacks.length === 0
? headersToSet
: callbacks.reduce((acc, cb) => cb(ctx, acc), headersToSet)
await next()
setHeaders(ctx, headersToSetForReq)
if (secureHeadersOptions?.removePoweredBy !== false) {
ctx.res.headers.delete('X-Powered-By')
}
}
} |
Thanks @watany-dev |
Hi @EdamAme-x I've left the comment. Please check it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
@EdamAme-x Thanks! This is a |
thanks @EdamAme-x |
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [hono](https://hono.dev/) ([source](https://togithub.com/honojs/hono)) | [`4.5.1` -> `4.5.4`](https://renovatebot.com/diffs/npm/hono/4.5.1/4.5.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>honojs/hono (hono)</summary> ### [`v4.5.4`](https://togithub.com/honojs/hono/releases/tag/v4.5.4) [Compare Source](https://togithub.com/honojs/hono/compare/v4.5.3...v4.5.4) ##### What's Changed - fix(jsx): corrects the type of 'draggable' attribute in intrinsic-elements.ts by [@​yasuaki640](https://togithub.com/yasuaki640) in [https://github.com/honojs/hono/pull/3224](https://togithub.com/honojs/hono/pull/3224) - feat(jsx): allow to merge CSSProperties declaration by [@​jonasnobile](https://togithub.com/jonasnobile) in [https://github.com/honojs/hono/pull/3228](https://togithub.com/honojs/hono/pull/3228) - feat(client): Add WebSocket Provider Integration Tests and Enhance WebSocket Initialization by [@​naporin0624](https://togithub.com/naporin0624) in [https://github.com/honojs/hono/pull/3213](https://togithub.com/honojs/hono/pull/3213) - fix(types): `param` in `ValidationTargets` supports optional param by [@​yusukebe](https://togithub.com/yusukebe) in [https://github.com/honojs/hono/pull/3229](https://togithub.com/honojs/hono/pull/3229) ##### New Contributors - [@​jonasnobile](https://togithub.com/jonasnobile) made their first contribution in [https://github.com/honojs/hono/pull/3228](https://togithub.com/honojs/hono/pull/3228) **Full Changelog**: honojs/hono@v4.5.3...v4.5.4 ### [`v4.5.3`](https://togithub.com/honojs/hono/releases/tag/v4.5.3) [Compare Source](https://togithub.com/honojs/hono/compare/v4.5.2...v4.5.3) #### What's Changed - fix(validator): Add double quotation marks to multipart checker regex by [@​CPlusPatch](https://togithub.com/CPlusPatch) in [https://github.com/honojs/hono/pull/3195](https://togithub.com/honojs/hono/pull/3195) - fix(validator): support `application/json` with a charset as JSON by [@​yusukebe](https://togithub.com/yusukebe) in [https://github.com/honojs/hono/pull/3199](https://togithub.com/honojs/hono/pull/3199) - fix(jsx): fix handling of SVG elements in JSX. by [@​usualoma](https://togithub.com/usualoma) in [https://github.com/honojs/hono/pull/3204](https://togithub.com/honojs/hono/pull/3204) - fix(jsx/dom): fix performance issue with adding many new node listings by [@​usualoma](https://togithub.com/usualoma) in [https://github.com/honojs/hono/pull/3205](https://togithub.com/honojs/hono/pull/3205) - fix(service-worker): refer to `self.fetch` correctly by [@​yusukebe](https://togithub.com/yusukebe) in [https://github.com/honojs/hono/pull/3200](https://togithub.com/honojs/hono/pull/3200) #### New Contributors - [@​CPlusPatch](https://togithub.com/CPlusPatch) made their first contribution in [https://github.com/honojs/hono/pull/3195](https://togithub.com/honojs/hono/pull/3195) **Full Changelog**: honojs/hono@v4.5.2...v4.5.3 ### [`v4.5.2`](https://togithub.com/honojs/hono/releases/tag/v4.5.2) [Compare Source](https://togithub.com/honojs/hono/compare/v4.5.1...v4.5.2) #### What's Changed - fix(helper/adapter): don't check `navigator` is `undefined` by [@​yusukebe](https://togithub.com/yusukebe) in [https://github.com/honojs/hono/pull/3171](https://togithub.com/honojs/hono/pull/3171) - fix(types): handle readonly array correctly by [@​m-shaka](https://togithub.com/m-shaka) in [https://github.com/honojs/hono/pull/3172](https://togithub.com/honojs/hono/pull/3172) - Revert "fix(helper/adapter): don't check `navigator` is `undefined` by [@​yusukebe](https://togithub.com/yusukebe) in [https://github.com/honojs/hono/pull/3173](https://togithub.com/honojs/hono/pull/3173) - fix(type): degradation of generic type handling by [@​m-shaka](https://togithub.com/m-shaka) in [https://github.com/honojs/hono/pull/3138](https://togithub.com/honojs/hono/pull/3138) - fix:(csrf) fix typo of csrf middleware by [@​yasuaki640](https://togithub.com/yasuaki640) in [https://github.com/honojs/hono/pull/3178](https://togithub.com/honojs/hono/pull/3178) - feat(secure-headers): remove "X-Powered-By" should be an option by [@​EdamAme-x](https://togithub.com/EdamAme-x) in [https://github.com/honojs/hono/pull/3177](https://togithub.com/honojs/hono/pull/3177) **Full Changelog**: honojs/hono@v4.5.1...v4.5.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone America/Chicago, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/autoblocksai/cli). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM4LjE4LjE3IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Close #3175
The author should do the following, if applicable
bun run format:fix && bun run lint:fix
to format the code