自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET限制上傳文件類(lèi)型的兩種方法

開(kāi)發(fā) 后端
本文向你介紹在ASP.NET應(yīng)用程序中利用Web Control的內(nèi)置屬性簡(jiǎn)單高效地實(shí)現(xiàn)ASP.NET限制上傳文件類(lèi)型的功能。

通常,為了防止因用戶上傳有害文件(如木馬、黑客程序)引發(fā)的安全性問(wèn)題,Web程序都會(huì)對(duì)用戶允許ASP.NET上傳文件類(lèi)型加以限制。而本文將要介紹的就是如何在ASP.NET應(yīng)用程序中利用Web Control的內(nèi)置屬性簡(jiǎn)單高效地實(shí)現(xiàn)ASP.NET限制上傳文件類(lèi)型的功能。

在調(diào)用PostFile對(duì)象的SaveAs方法保存上傳文件之前,可以通過(guò)PostFile對(duì)象的FileName屬性得到上傳的文件名。而有了上傳的文件名,就可以采用比對(duì)文件后綴名的方法知道上傳的文件是否屬于允許上傳的文件類(lèi)型。

根據(jù)這個(gè)思想,我們就得到了下面這段代碼:

  1. If Path.GetExtension(sFilePath) <> ".zip" Then  
  2.  
  3.   Label2.Text = "本應(yīng)用程序只允許上傳zip格式的文件,請(qǐng)重新選擇!" 
  4.  
  5.   Return 

這時(shí)如果上傳后綴名不是zip的文件,就會(huì)發(fā)現(xiàn)文件無(wú)法上傳了。不過(guò),這并表示我們就不能把上傳其他格式的文件了。其實(shí),如果在上傳前,事先把文件后綴名改成zip,上面這段代碼就失去作用了。

之所以會(huì)出現(xiàn)這種情況,在于上面的判斷僅僅比對(duì)了文件名字符串,并沒(méi)有對(duì)文件格式做進(jìn)一步的分析。因此,如果要徹底達(dá)到ASP.NET限制上傳文件類(lèi)型,還需要用到PostFile對(duì)象的ContentType屬性。ContentType屬性的功能是獲取客戶端發(fā)送的文件的 MIME (注一)內(nèi)容類(lèi)型,由于瀏覽器在向服務(wù)器發(fā)送請(qǐng)求前,首先會(huì)確定發(fā)送內(nèi)容的MIME類(lèi)型,并將MIME類(lèi)型作為信息的一部分提交到服務(wù)器端,因此,有了MIME類(lèi)型信息(注二),就可以準(zhǔn)確知道上傳文件的實(shí)際類(lèi)型了。

If File1.PostedFile.ContentType <> "application/zip" Then

Label2.Text = "本應(yīng)用程序只允許上傳zip格式的文件,請(qǐng)重新選擇!"

這時(shí),如果再采用修改后綴名的方法上傳文件就會(huì)發(fā)現(xiàn)再也無(wú)法上傳了。

注一:MIME是一種技術(shù)規(guī)范,其中文翻譯為多用途Internet郵件擴(kuò)展(Multipurpose Internet Mail Extensions),主要用來(lái)在Internet傳輸過(guò)程中表示不同編碼格式的文件;

注二:要獲取不同文件格式的MIME定義,只要啟動(dòng)注冊(cè)表編輯器,然后在HKEY_CLASSES_ROOT下找到跟后綴名對(duì)應(yīng)的注冊(cè)表項(xiàng),如果存在文件格式的MIME定義,在右側(cè)窗口就會(huì)顯示一個(gè)名為“Content Type”的鍵,而這個(gè)鍵的值就是文件格式的MIME定義。

以上兩種方法混用,ASP.NET限制上傳文件類(lèi)型就基本實(shí)現(xiàn)了。但是如果某些有心人如果更改注冊(cè)表的 MIME 值的內(nèi)容一樣可以上傳惡意程序,如果這樣的話,只有加固程序和系統(tǒng),不讓其更改上傳后文件的擴(kuò)展名?;蚴遣捎米远x的控件,采用更嚴(yán)密的檢測(cè)措施。

 

【編輯推薦】

  1. ASP.NET AJAX的WCF服務(wù)
  2. ASP.NET MVC概述:優(yōu)點(diǎn)和特色一覽
  3. 配置ASP.NET步驟
  4. ASP.NET中的Session狀態(tài)
  5. ASP.NET環(huán)境下的Shell函數(shù)
責(zé)任編輯:佚名 來(lái)源: 站長(zhǎng)網(wǎng)
相關(guān)推薦

2013-05-31 10:36:56

ASP.net文件上傳

2009-07-27 14:41:33

ASP.NET調(diào)用存儲(chǔ)

2009-07-21 16:23:57

2009-08-12 16:44:13

.NET文件類(lèi)型

2009-07-20 16:09:39

2009-10-30 14:03:59

ASP.NET上傳文件

2009-07-20 17:07:30

提高ASP.NET性能

2009-07-21 15:38:31

2009-07-29 10:02:49

ASP.NET上傳

2009-07-30 13:43:58

ASP.NET中文件上

2009-07-27 17:32:39

Web ServiceASP.NET

2009-07-21 13:01:07

ASP.NET上傳文件

2009-07-24 15:07:56

ASP.NET上傳文件

2021-02-05 08:03:52

Java

2009-09-04 11:20:47

ASP.NET頁(yè)面間值

2024-08-19 01:00:00

讀取配置文件接口應(yīng)用程序

2024-03-15 11:35:11

配置文件應(yīng)用程序開(kāi)發(fā)

2009-07-30 14:18:02

ASP.NET實(shí)例教程

2009-08-04 11:46:09

2009-07-21 16:05:58

ASP.NET大文件上
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)