I understand that a header like X-Powered-By
can reveal details about the operating environment that can be used to find known vulnerabilities because you often get the language and compiler/interpreter/operating environment versions.
With a "don't give them more than necessary" mindset, I assume that headers that give you a language class like PHPSESSION
or JSESSIONID
should be replaced with custom alternatives, so that a potential has less details to go with to narrow down the scope of his probing...
As it is mentioned on OWASPs website:
NOTE: Remember that attackers have other means of fingerprinting your tech stack.
I am aware that the difference between X-Powered-By: PHP/5.3.2
and PHPSESSION
is the same as "1992 Toyota Corolla" and "a Toyota" - The X-Powered-By
header is very exact. Of course you may be able to fingerprint based on the app (e.g. Wordpress is easily identified).
Would it make sense to remove all such identifying headers in addition to the X-Powered-By
headers?
The scope is for bespoke applications, since sites and applications building on clear frameworks like wordpress are harder to "anonymize" in my opinion.