由于在项目中有同学使用后缀为 .xml 的文件作为配置文件,而配置文件中有一些敏感信息被记录,如接口地址,Token,甚至还有数据库连接字符串。

以前都没想过为何微软会使用.config 的后缀在作为web.config,仅仅是为了直观吗? 众所周知,.config 实际也是.xml的一部分,是一个子集。理论上用 xxx.xml也是可以的。所以导致很多人习惯性的将很多配置文件以 .xml 的后缀使用。如果在网站中使用xml,如果不加以限制,是可以浏览.xml文件的内容的。如果你的.xml配置了敏感信息,等于埋了一颗雷。

举个日志配置的例子:

实际中随着项目的开发,可能很多功能都使用xml后缀为配置,没有做访问规则处理,如果被不怀好心的人扫描到网站目录,那将会很严重。

解决方式:

一、在iis中配置请求筛选,实际上为什么使用.config后缀,因为iis默认给添加了请求筛选,不需要自己去配置。这也是最主要的原因,次要原因.config也是直观上知道这个配置文件。

这是默认的.config配置

我们自定义添加一个隐藏段“configs”,把整个目录设置不能访问,然后试试效果

配置后会在web.config生成相应的配置

配置后的效果:

二、如果可以,在网站项目把.xml配置文件改为.config

但也仅限于是配置文件,如果只是普通的xml文件那也就没有必要使用.config的后缀。不同的业务使用不同的方式。

使用.config作为配置文件,也减少了网站维护人员的烦恼。如果万一哪天说我们网站被暴了,可能很久都查找不来问题。

可能有很多人都会忽略这个细节。特别是从桌面开发人员转过来开发网站项目的。。

本文内容未必完全正确,如有错误恳请指证,避免误人子弟,谢谢。

iis / asp.net 使用 .config 和 .xml 文件的区别的更多相关文章

  1. spring代码异常捕获到logback logging.config=logback-spring.xml文件中不能输出异常e.printStackTrace

    在spring中使用logging.config=logback-spring.xml将日志转存到了文件中.但是代码中的捕获的异常无法用 e.printStackTrace 打印到文件中.使用如下方法 ...

  2. ASP.NET写入和读取xml文件

    xml是一种可扩展标记语言,在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等.它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 ...

  3. Asp.Net_抓包解析xml文件为json

    protected void Button1_Click(object sender, EventArgs e) { string Phone = this.Txt_Con.Text; string ...

  4. 菜鸟学Java(八)——dom4j详解之读取XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  5. C# 读写XML文件示例

    using System; using System.Collections.Generic; using System.Text; using System.Configuration; using ...

  6. asp.net 生成xml文件 与 asp生成xml文件

    一.asp.net 生成xml文件 webservice方式,调用接口: public XmlDocument List() { XmlDocument doc = new XmlDocument() ...

  7. ASP.Net Web.config 中引用外部config文件

    1. 前提准备: Web.config file: <?xml version="1.0" encoding="utf-8"?><config ...

  8. IIS 之 通过 Web.config 修改文件上传大小限制设置方法

    在IIS 6.0中,不设置默认大小为4M,设置文件上传大小的方法,maxRequestLength(KB),executionTimeout(毫秒),配置如下节点: <system.web> ...

  9. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

随机推荐

  1. Vue-自带vue-resource插件实现http请求

    安装 本地环境安装路由插件vue-resource:    cnpm install vue-resource --save-dev *没有安装淘宝镜像的可以将 cnpm 替换成 npm 想要安装的可 ...

  2. POI导出Excel的几种情况

    第一种:常见导出[已知表头(长度一定),已知表数据(具体一个对象的集合,并已知对象各个属性的类型)]第二种:不常见导出[已知表头(长度不定),已知表数据(没有具体对象,装在String类型的集合中)] ...

  3. PHP Curl会话请求

    /** * @param string $url 请求地址 * @param string $type 请求类型 post get * @param string $arr 如果是post 传递的数据 ...

  4. FTP环境搭建及客户代码调用公共方法封装

    一.背景 大型系统架构往往被分解为多个独立可运行的组件, 以满足性能.可靠性.可扩展性的需求.多个组件间的数据交互往往采用两种方式:小量数据通过Sock函数.RMI.WebService等接口方式传递 ...

  5. html2canvas不能识别svg的解决方案

    最新有个功能需要截取网页成图片,于是用到比较流行的html2canvas,本来以为能顺顺利利的搞定,后来发现网页上的流程图连接线不在截图中.于是各种百度.bing,也搜到好多,但是感觉没有一个完整的代 ...

  6. intellij idea快捷键字典

    最近在重装系统,在安装python IDE时候依然安装了sublime Text3和intellij Idea(冏,别问为什么没安装pycharm,0-0 逃).首先是已然将之前一直使用的sublim ...

  7. Java Swing应用程序 JComboBox下拉框联动查询

    在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...

  8. 边框0.5px的实现方法

    原理: css3 的缩放   ---->    transform: scale() 完整代码如下: <!DOCTYPE html> <html lang="en&q ...

  9. SignalR Self Host+MVC等多端消息推送服务(4)

    由于工作太忙,一直没时间更新博客,之前有很多朋友一直问我什么时候将后续的代码发上来,一直没时间,今天就长话短说,不写文章了,直接上demo,里面将正式项目中用到的一些敏感信息修改了,要使用的话下载后自 ...

  10. parted分区和挂载及非交互式操作

    author : headsen  chen date : 2017-11-17  09:45:36 个人原创,转载请注明作者,出处,否则依法追究法律责任 1,将磁盘上原有的分区删除掉: 进入:#pa ...