1. How to access existing files safely

FileInfo file = new FileInfo(Path.Combine(。。。。。 在网站中如果使用get方法进行传递文件名称的时候,比如:http://localhost:4245/WebSite2/getfile.aspx?filename=example2.容易被攻击 如http://localhost:4245/WebSite2/getfile.aspx?filename=web.config 也可以http://localhost:4245/WebSite2/getfile.aspx?filename=http://www.cnblogs.com/Win.ini 以获取系统的其他配置信息,这样危险呢 ,

使用FileInfo file = new FileInfo(Server.MapPath(filename));就不会出现这个问题了 因为 Server.MapPath will not return any path outside of the root of your Web application

要把要访问的文件控制在一个文件夹内,就不会出现访问WEB.config的问题了 需要的做法是,首先建立一个文件夹 如:Document

 FileInfo file = new FileInfo(Server.MapPath(Path.Combine("documents", filename))); 

这样整个文件的访问,就不会跳出Document这个文件夹范围内了

如何控制访问文件的类型?通过设置 MIME类型来实现。

Response.ContentType = "text/plain";

如果要访问的文件不在root范围之内,则需要使用绝对路径

FileInfo file = new FileInfo(Server.MapPath(Path.Combine(@"c:\inetpub\documents\", filename)));

在获得了文件之后,不是把他们response.write到页面,而是下载

Response.AddHeader("Content-Disposition", "attachment; filename=&"+ filename);

如果你需要对别人下载的权限进行判断,只需要在web.config中

?<xml version="1.0" encoding="utf-8"? >
<configuration >
<system.web >
<authentication mode="Forms" / >
<authorization >
<allow roles="GoldMember" / >
<deny users="*" / >
</authorization >
</system.web

</configuration >

设置系统的访问角色,然后在下载的时候执行

if (User.IsInRole("GoldMember"))
{
// Serve content

}

如果必须要控制下载的是通过本网站的话 可以使用以下的语句

if (Request.UrlReferrer.Host != "mysite.example"& &
Request.UrlReferrer.Host != "www.mysite.example")
{
Response.End();
}
else
{
// Continue

}

在使用上传文件的时候在web.config中加入

?<x ml version="1.0 ” ?
<c onfiguration >
....
< system.web >
< httpRuntime
executionTimeout = "90 “
maxRequestLength="4096 “
/ >
....
< /system.web >
....
</ configuration >

Handling User Uploads ❘ 223

转载于:https://www.cnblogs.com/SumYang/archive/2011/03/26/1996084.html

asp.net 安全---File Sytem 安全相关推荐

  1. android readonly file system,安卓ROOT权限下“Read-only file sytem”解决办法

    今天用安卓模拟器:BlueStacks,打开apk终端模拟器:Terminal,在shell操作命令的时候提示"Read-only file sytem": 第一种方法: 在 An ...

  2. ASP.NET MVC- Upload File的例子

    上传文件是一项基本功能,一定要了解的.先来看一下使用ASP.NET MVC实现简单的上传. 一.简单的例子 Controller的例子 public ActionResult UploadDemo() ...

  3. ASP.NET Core File Providers

    ASP.NET Core通过对File Providers的使用实现了对文件系统访问的抽象. 查看或下载示例代码 File Provider 抽象 File Providers是文件系统之上的一层抽象 ...

  4. asp.net type=file前后台合作 在上传图片到服务器

    前台 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> ...

  5. Fckeditor PHP/ASP File Upload Vul

    目录 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用Jav ...

  6. ASP.NET MVC Framework 系列

    序言 做为设计模式的王者,MVC在众多领域都成为良好的模型的代名词,从前在ASP.NET下我们只能依靠Monorail来实现ASP.NET下无控件的MVC,但是现在ASP.NET 下的MVC已经成为现 ...

  7. 简易ASP文件缓存技术

    注意:系统需要FSO权限.XMLHTTP权限 系统包括两个文件,其实可以合并为一个.之所以分为两个是因为部分杀毒软件会因为里边含有FSO.XMLHTTP操作而被认为是脚本木马. 调用时,需要在ASP页 ...

  8. [asp常用代码]文件上传代码

    调用实例: UploadDemo.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">& ...

  9. asp服务器组件安装包,ASP服务器组件

    <ASP服务器组件>由会员分享,可在线阅读,更多相关<ASP服务器组件(20页珍藏版)>请在人人文库网上搜索. 1.7/10/2020,1,网络开发技术,第二部分 ASP开发技 ...

  10. ASP.NET2.0 菜单控件menu的动态静态用法

    利用 ASP.NET Menu 控件,可以开发 ASP.NET 网页的静态和动态显示菜单.您可以在 Menu 控件中直接配置其内容,也可通过将该控件绑定到数据源的方式来指定其内容. 无需编写任何代码, ...

最新文章

  1. Java vararg(动态参数)的应用
  2. 插入排序c语言_玩扑克牌中插扑克牌手法就是不一样,C语言经典算法之插入排序...
  3. Connection closed by foreign host. 误改BUG
  4. HttpWatch截取网页数据的工具以及介绍
  5. 笔记-高项案例题-2017年上-变更管理-需求管理
  6. Exchange 常用命令行备忘
  7. vue父组件变量传递子组件_Vue.js 父组件向子组件传递数据通过 props
  8. 小程序入门学习06--data、url传参、调用豆瓣api
  9. 单CPU环境中如何实现多进程并行工作?
  10. 转:java中获取实体类中的get、set方法名
  11. linux 繁体转简体,Linux下在程序中如何进行繁体中文和简体中文的转换
  12. 攻防世界misc解题(一)
  13. 多任务深度强化学习入门
  14. Scratch编程初体验-小猫跳舞
  15. CSS的3d翻滚特效
  16. Iperf 详细介绍
  17. 编程实现根据公式π/4=1-(1/3)+(1/5)-(1/7)...计算π的值
  18. ——廖一梅《像我这样笨拙地生活》经典语录
  19. 零基础前端入门系列(八)
  20. 清理Java缓存步骤:

热门文章

  1. LINUX安装CUDA 9.2,提示缺少文件的解决办法
  2. DEBUG模式下,视频丢包严重;RELEASE就好了
  3. 安卓一个奇怪的LOG:ColorDrawable.setColor
  4. oracle查看用户登录失败次数,​oracle查看用户登录失败次数及详细信息
  5. phython在file同时写入两个_Python实现读取excel写入mysql的小工具详解
  6. php big5 转utf8,php如何实现big5转utf8
  7. springboot加载过程_SpringBoot自定义Starter,分析加载过程
  8. vgh电压高了有什么_能源网建设的风电高电压穿越测试有何作用
  9. java经纬度排序,elasticsearch搜索经纬度(lbs)_geo_distance距离排序实现方案
  10. 使用python构建基于hadoop的mapreduce日志分析平台