文件目录

ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构

江枫思渺然 提交于 2020-03-31 01:32:12
原文: ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构 和StaticFileMiddleware中间件一样,DirectoryBrowserMiddleware中间本质上还是定义了一个 请求地址与某个物理目录之间的映射关系 ,而目标目录体现为一个FileProvider对象。当这个中间件接收到匹配的请求后,会根据请求地址解析出对应目录的相对路径,并利用这个FileProvider获取目录的内容。目录的内容最终会以一个HTML文档的形式被定义,而此HTML最终会被这个中间件作为响应的内容,“目录浏览器”的实现原理就这么简单。 [本文已经同步到《 ASP.NET Core框架揭秘 》之中] 目录 一、DirectoryBrowserMiddleware 二、DirectoryFormatter 三、具体请求处理逻辑 四、自定义DirectoryFormatter 一、DirectoryBrowserMiddleware 接下来我们来看看DirectoryBrowserMiddleware的定义。如下面的代码片段所示,DirectoryBrowserMiddleware的第二个构造函数具有四个参数,其中第二个参数是代表当前执行环境的HostingEnvironment

ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面

倾然丶 夕夏残阳落幕 提交于 2020-03-31 01:28:22
原文: ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面 DefaultFilesMiddleware中间件的目的在于将 目标目录下的默认文件作为响应内容 。我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端。如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了。实际上DefaultFilesMiddleware中间件的实现逻辑很简单,它采用URL重写的形式修改了当前请求的地址,即将针对目录的URL修改成针对默认文件的URL。[本文已经同步到《 ASP.NET Core框架揭秘 》之中] 我们照例先来看看DefaultFilesMiddleware类型的定义。和其他两个中间件类似,DefaultFilesMiddleware的构造就有一个IOptions<DefaultFilesOptions>类型的参数来指定相关的配置选项。由于DefaultFilesMiddleware中间件本质上依然体现了请求路径与某个物理目录的映射,所以DefaultFilesOptions依然派生于SharedOptionsBase。DefaultFilesOptions的DefaultNames属性包含了预定义的默认文件名

收藏 | 15 个你非了解不可的 Linux 特殊字符,妈妈再也不用担心我看不懂这些符号了!

别说谁变了你拦得住时间么 提交于 2020-03-30 22:57:10
不知道大家接触 Linux 系统有多久了,可曾了解过 Linux 中有哪些特殊的字符呢?其实啊,那些特殊字符都大有用处呢,今天的文章就给大家简单地科普一下 Linux 中你需要了解的 15 个特殊字符,想学或刚学 Linux 的小伙伴赶紧上车了为! ~ 主目录 这个波浪号 ~ 指的是 主目录 ,也就是我们用户的个人目录,无论你身在何方,输入 cd ~ 它将带你回家! cd ~ 更高端的玩法就是在它后面加上具体的路径,直接定位到家目录中的指定位置,是不是很方便呢? cd ~/work/archive . 当前目录 英文句号 . 代表 当前目录 ,我们来看一下当前目录下的全部文件: ls -al 红圈里的 . 就是指当前目录,不过这没什么意义,我们更多的是在命令中使用它,如下: ./script.sh 这样做是在告诉 bash 只要在当前目录中查找并执行 script.sh 文件就好了,不用在路径中找了。 .. 父目录 两个英文句号 .. 代表 父目录 ,也就是当前目录的上一级目录。假设我们要回到上一级目录: cd .. 跟前面一样,你可以在它后面加具体的目录,这里的意思就是定位到与当前目录同级的其它目录: cd ../projects/ / 路径目录分隔符 斜杠 "/" 指的是 路径目录分隔符 ,这里没什么好说的。 ls ~/work/tests/ 但是,有意思的是,如果 /

Linux硬链接和软链接

Deadly 提交于 2020-03-30 21:56:13
硬链接和软连接 硬链接: 硬链接是指通过索引节点来进行转换,在Linux的文件系统中,保存在磁盘分区中的文件 不管是什么类型都会给它分配一个编号,这个编号被称为索引节点(Inode Index)或者成为Inode 在Linux系统中,多个文件中指向同一个索引节点(Inode)是正常允许的。一般这种链接就成为硬链接。硬链接的作用之一是允许一个多文件拥有多个 有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件,如netapp存储中的快照功能就应用了这个原理,增加了一个快照就多了一个硬链接)。问什么文件建立了硬链接就会放置数据删除呢? 因为文件系统的原理是,只要文件名指向统一索引节点(Inode)还有一个以上的链接(仅仅删除了该文件指向)。只删除其中一个链接并不影响索引节点本身和其它的链接(既数据文件指向)。只删除一个链接并不影响索引节点本身和其它的链接(既数据文件实体并未被删除),只有当最后一个链接被删除后,此时如果有新数据要存储到硬盘时被删除文件的数据块及目录的链接才会被释放,空间被新数据占用覆盖。此时,数据就再也无法找回了。也就是说,在linux系统中,删除文件(其实目录也是文件)的添加是于之相关的所有硬链接文件均被删除。 软链接: 软链接有时也被称为符号链接(Symbolic Link)。软链接文件就类型与Windows系统中的快捷文件

常规web***测试漏洞描述及修复建议

别来无恙 提交于 2020-03-30 21:06:39
Apache样例文件泄漏 测试方法   在链接的根目录中添加examples或者docs目录进行访问判断! 漏洞描述  apache一些样例文件没有删除,可能存在cookie、session伪造,进行后台登录操作 修复建议  1、删除样例文件  2、对apache中web.xml进行相关设置 弱口令 测试方法   先手工尝试一些最基本的弱口令,如admin/admin、admin/123456、admin/888888等,如果不行,使用暴力破解工具进行暴力破解,如使用burpsuite,另外推荐一个小技巧,使用暴力破解的时候,弱口令使用2到3个常见的,然后用户名使用人名拼音top500! 漏洞描述   由于系统中存在有弱口令,导致***者通过弱口令可轻松登录系统中,从而进行下一步的***,如上传webshell,获取敏感数据!   另外***者利用弱口令登录网站管理后台,可任意增删改等操作,从而造成负面影响! 修复建议   1、 建议强制用户首次登录时修改默认口令,或是使用用户自定义初始密码的策略;   2、 完善密码策略,信息安全最佳实践的密码策略为8位(包括)以上字符,包含数字、大小写字母、特殊字符中的至少3种。   3、对管理后台进行访问控制,修改后台弱口令,加强口令强度并定期修改。   4、增加验证机制,防爆破机制,限制ip+cookie访问次数。 明文传输登录口令

02-Zookeeper介绍及安装

不打扰是莪最后的温柔 提交于 2020-03-30 14:02:11
1 Zookeeper介绍 ZooKeeper是为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务: 分布式锁服务。分布式应用可以基于它实现更高级的服务,实现诸如同步服务、配置维护和集群管理或者命名的服务。 Zookeeper服务自身组成一个集群,2n+1个(奇数)服务允许n个失效,集群内一半以上机器可用,Zookeeper就可用。 1.1 数据模型 1)ZooKeeper本质上是一个 分布式的小文件存储系统; 2)Zookeeper表现为一个分层的文件系统目录树结构(不同于文件系统的是,节点可以有自己的数据,而文件系统中的目录节点只有子节点), 每个节点可以存少量的数据(1M左右)。 3)每个节点称做一个ZNode。 每个ZNode都可以通过其路径唯一标识。 4)ZooKeeper中的每个节点存储的数据要被原子性的操作。也就是说 读操作将获取该节点相关的所有数据,写操作也将替换掉节点的所有数据。 5)在zookeeper创建顺序节点(create -s ),节点路径后加编号,这个计数对于此节点的父节点来说是唯一的。 /app/ /s100000000001 /s100000000002 6)ZooKeeper中的节点有两种,分别为临时节点和永久节点。节点的类型在创建时即被确定,并且不能改变。 ① 临时节点 :在客户端用 create -e创建

SVN使用(二)

微笑、不失礼 提交于 2020-03-30 13:54:37
TortoiseSVN是windows平台下Subversion的免费开源客户端。 一般我们都是先讲讲服务器的配置,然后再讲客户端的使用,但是在TortoiseSVN上,却可以反过来。因为,如果你的要求不高,只是想在本机,或者是可信任的局域网络中使用SVN版本控制,可以不需要安装SVN,而只使用TortoiseSVN即可。 接下来就来讲讲TortoiseSVN的使用。 1、下载TortoiseSVN。下载地址:http://tortoisesvn.net/downloads,其中也包括了中文语言包的下载。 2、安装TortoiseSVN。很简单,一路“Next”即可。安装完TortoiseSVN后,重启计算机。现在,你就可以使用TortoiseSVN了。 TortoiseSVN集成于windows的资源管理器,直接在资源管理器中点击鼠标右键即可看到TortoiseSVN的功能选项。 3、安装中文语言包。安装下载的中文语言包安装程序。完成后,在TortoiseSVN右键菜单的Settings选项中,选择简体中文即可。 4、获取已有的版本库文件。 版本库是Subversion的核心部分,是数据的中央仓库。版本库以典型的文件和目录结构形式文件系统树来保存信息。任意数量的客户端连接到Subversion版本库,读取、修改这些文件。客户端通过写数据将信息分享给其他人

NFS

爷,独闯天下 提交于 2020-03-30 13:42:09
NFS ●NFS 。1. nfs简介 ■1.1 nfs特点 ■1.2使用nfs的好处 ■1.3 nfs的体系组成 ■1.4 nfs的应用场景 。2. nfs工作机制 ■2.1RPC. ■2.2NIS 2.3 nfs工作机制 。3. exports文件的格式 。4. nfs管理 。作业 nfs简介 1.1 nfs特点 ●NFS (Network File System) 即网络文件系统,是FreeBSD支持的文件系统中的一种,它允 许网络中的计算机之间通过TCP/IP网络共享资源 ●在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就 像访问本地文件-样 ●nfs适用于Linux与Unix之 间实现文件共享,不能实现L inux与Windows间的文件共享功能 ●nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上 ●nfs服务只能基于IP进行认证, 这也是它的缺点之一 1.2使用nfs的好处 ●节省本地存储空间,将常用的数据存放在一台NFS服务器 上且可以通过网络访问,那么本地 终端将可以减少自身存储空间的使用 ●用户不需要在网络中的每个机器.上都建有Home目录,Home目录可以放在NFS服务器上且可 以在网络.上被访问使用 ●一些存储设备如软驱、CDROM和Zip (-种高储存密度的磁盘驱动器与磁盘)等都可以在网

四、创建、删除、复制、移动目录

北慕城南 提交于 2020-03-30 13:33:56
1 创建目录 使用:mkdir [选项] [目录...] (1)在根目录创建文件夹a mkdir /a ls /a (2)建立多个目录 mkdir a b c (3)创建多级目录,eg:a目录下创建b,b目录下创建c…… mkdir -p a/b/c/d ls -R a 2 删除目录 rmdir 删除目录,只能删除空白的目录,该目录下有空目录也无法删除(linux : everything is file) rm rm -r 删除目录,即使非空也能删除。会一级级进行确认 rm -rf 删除目录,即使非空也能删除。不会一级级确认 3 复制目录 简介:cp 复制的文件或目录 使用: cp [选项] 文件路径 cp [选项] 文件...目录 (1)复制文件:cp + 被复制文件 + 复制到哪个目录 user1@SC02ZRC4KMD6N normal % cp a/temp b user1@SC02ZRC4KMD6N normal % (2)复制目录:cp -r + 被复制文件 + 复制到哪个目录 user1@SC02ZRC4KMD6N normal % ls -R a tmp a/tmp: user1@SC02ZRC4KMD6N normal % ls b user1@SC02ZRC4KMD6N normal % cp a/tmp b cp: a/tmp is a directory

服务器上的Git

坚强是说给别人听的谎言 提交于 2020-03-30 13:13:53
前面的话   如果想与他人使用,除了使用Git来完成日常工作之外,还需要一个远程的Git仓库。尽管从技术上可以从个人的仓库里推送和拉取修改内容,但并不鼓励这样做,因为一不留心就很容易弄混其他人的进度。因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据。我们将这个仓库称为"Git服务器";代理一个Git仓库只需要花费很少的资源,几乎从不需要整个服务器来支持它的运行   远程仓库通常只是一个裸仓库(bare repository)——即一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以不需要从硬盘上取出最新版本的快照;仓库里存放的仅仅是Git的数据。简单地说,裸仓库就是你工作目录中.git子目录内的内容   本文将详细介绍服务器上的Git 协议   Git可以使用四种主要的协议来传输数据:本地传输,SSH协议,Git协议和HTTP协议。下面分别介绍一下哪些情形应该使用(或避免使用)这些协议   值得注意的是,除了HTTP协议外,其他所有协议都要求在服务器端安装并运行Git 【本地协议】   最基本的就是本地协议(Local protocol),所谓的远程仓库在该协议中的表示,就是硬盘上的另一个目录。这常见于团队每一个成员都对一个共享的文件系统(例如NFS)拥有访问权,或者比较少见的多人共用同一台电脑的情况。后面一种情况并不安全