zoukankan      html  css  js  c++  java
  • 转IIS 屏蔽返回的Header中的 IIS版本信息

    最近一个客户通过专业工具扫描网站,发现了几个低等级的安全问题,其中有csp安全设置缺乏,http请求表头返回敏感信息未处理,跨站攻击防范未处理等,要求我们予以修复。

    说实话,这类事情,国内很多人都没听说过,因为没人重视,也可能是有些人刻意为之的缘故吧,否则那些广告联盟的饭就不好吃了。。。。

    废话少说,现在就把处理的过程简单记录下来:

    首先是在网站配置文件里添加如下节点,用于csp设置,下面的例子设置为最严防范

    1.  
      <system.web>
    2.  
      ...
    3.  
      <httpRuntime enableVersionHeader="false" />
    4.  
      <system.webServer>
    5.  
      ...
    6.  
      <httpProtocol>
    7.  
      <customHeaders>
    8.  
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    9.  
      <add name="Content-Security-Policy" value="default-src 'self'; style-src 'self' 'unsafe-inline'; media-src *; script-src 'self' 'unsafe-eval' 'unsafe-inline'; img-src 'self'"/>
    10.  
      </customHeaders>
    11.  
      </httpProtocol>
    12.  
      </system.webServer>
    13.  
      </system.web>

    然后是禁止iis返回服务器敏感信息,网上查了N种方法,都不行,要么是过时了,要么是没有效果,要么是应用范围比较窄。。。

    最后同事在github上发现了一个开源的项目,可以轻松解决这个问题,现在也贴出来:

    StripHeaders 项目入口

    下载StripHeaders安装文件(.msi)

    我们只要下载msi文件点击安装,然后重启iis就可以了。

    做完之后,再打开网站,就会看到,所有返回的请求头里,server信息以及X-Powered-By、X-AspNet-Version、X-AspNetMvc-Version等都消失了,并且csp也正确反馈出来了。

    注意:如果没有效果,或是页面报错了,可能是系统用户权限不足,需要手动注册一下这个StripHeaders。

    可以用管理员权限打开命令行窗口,执行如下命令:

    C:WindowsSystem32inetsrvappcmd.exe install module /name:StripHeadersModule /image:%windir%system32inetsrvstripheaders.dll /add:true /lock:true

    然后再重启IIS服务,就可以了。

  • 相关阅读:
    spring mvc标准项目结构
    Logger之Logger.getLogger(CLass)
    java的占位符
    java 代码格式(转)
    解决cookie跨域访问
    web页面防盗链功能使用--request.getHeader("Referer")
    【Properties】Properties的load方法
    Servlet生命周期与工作原理
    面试中关于Java你所需知道的的一切
    数据库索引的实现原理
  • 原文地址:https://www.cnblogs.com/xuyufeng/p/14134135.html
Copyright © 2011-2022 走看看