狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

ASP.NET虛擬主機的重大安全隱患(二)

ASP.NET虛擬主機的重大安全隱患(二)

更新時間:2024-04-09 文章作者:未知 信息來源:網絡 閱讀次數:

程序二:顯示目錄中所有子目錄和文件的程序listdir.aspx

  目錄下有子目錄和文件兩種形式,必須分別對待。我們調用此程序本身對子目錄進行列表顯示,而文件我們需要調用showfile.aspx程序對文件的屬性和內容進行顯示。并且兩者還有不同的刪除方法,所以我們在這里設置了兩個DataGrid,兩個DataTable,兩個DataView,分別處理和顯示目錄和文件。

  顯示和處理目錄和文件的DataGrid的代碼(代碼在listdir.aspx文件):

  顯示目錄或文件的序號和名稱的數據列類似于listdrivers.aspx程序中的相應代碼,這里就不再重復了。對于子目錄和文件分別有各自的處理頁面,所以需要導航到兩個不同的頁面,對于子目錄,我們繼續使用listdir.aspx程序對其下的子目錄和文件進行列表顯示:

<asp:HyperLinkColumn DataNavigateUrlField="DirName"
DataNavigateUrlFormatString="listdir.aspx?dir={0}"
DataTextField="DirDetail"
HeaderText="詳細信息"
Target="_new"
/>
對于文件,我們使用showfile.aspx程序顯示其屬性和內容:
<asp:HyperLinkColumn DataNavigateUrlField="FileName"
DataNavigateUrlFormatString="showfile.aspx?file={0}"
DataTextField="FileDetail"
HeaderText="詳細信息"
Target="_new"
/>

  在兩個DataGrid(DirGrid,FileGrid)中我們分別設置了兩個HyperLinkColumn列來導航到不同的處理頁面。

  在兩個DataGrid中我們都使用了一個刪除的按鈕列:

<asp:ButtonColumn HeaderText="刪除"
Text="刪除"
CommandName="Delete"
/>

  由于添加、更新、刪除功能列都是DataGrid的默認模板列,所以可以在Vs.net中通過DataGrid的屬性生成器自動添加此列。

  獲取上一頁面所傳遞來的參數的代碼:

  因為在下面產生數據源的方法中需要使用由上一個頁面傳遞過來的參數來確定目錄和文件的名稱,所以在頁面的Page_Load方法里使用了下列代碼:

strDir2List = Request.QueryString["dir"];

  字符串strDir2List即傳過來的目錄名或文件名。

  因為我們使用了兩個DateGrid,就需要進行兩次數據綁定,就有兩個不同的生成數據源的方法。

  生成目錄數據網格(DirGrid)數據源的方法:

//通過此方法返回一個集合形式的數據視圖DataView,用來初始化子目錄的DataGrid
ICollection CreateDataSourceDir() {
dtDir = new DataTable();
DataRow dr;
//向DataTable中添加新的數據列,共四列
dtDir.Columns.Add(new DataColumn("DirID", typeof(Int32)));
dtDir.Columns.Add(new DataColumn("DirName", typeof(string)));
dtDir.Columns.Add(new DataColumn("DelDir", typeof(string)));
dtDir.Columns.Add(new DataColumn("DirDetail", typeof(string)));
//根據傳入的參數(目錄名)得到此目錄下所有子目錄名的字符串數組
string [] DirEntries = Directory.GetDirectories(strDir2List);
//使用foreach循環可以對未知長度的數組進行遍歷循環
foreach(string DirName in DirEntries){
dr = dtDir.NewRow();
dr[0] = i;//序號
dr[1] = DirName;//文件夾名稱
dr[3] = "刪除";
dr[3] = "查看詳情";
dtDir.Rows.Add(dr);
i++;
}
DataView dvDir = new DataView(dtDir);
//返回得到的數據視圖
return dvDir;
}
生成文件數據網格(FileGrid)數據源的方法:
//通過此方法返回一個集合形式的數據視圖DataView,用來初始化文件的DataGrid
ICollection CreateDataSourceFile() {
dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add(new DataColumn("FileID", typeof(Int32)));
dtFile.Columns.Add(new DataColumn("FileName", typeof(string)));
dtFile.Columns.Add(new DataColumn("DelFile", typeof(string)));
dtFile.Columns.Add(new DataColumn("FileDetail", typeof(string)));
//根據傳入的參數(目錄名)得到此目錄下所有文件名的字符串數組
string [] FileEntries = Directory.GetFiles(strDir2List);
foreach(string FileName in FileEntries){
dr = dtFile.NewRow();
dr[0] = i;
dr[1] = FileName;
dr[2] = "刪除";
dr[3] = "查看詳情";
dtFile.Rows.Add(dr);
i++;
}
dvFile = new DataView(dtFile);
return dvFile;
}

  我們編程實現了兩個DataSource只需在頁面的Page_Load方法里對兩個DataGrid進行數據綁定即可將得到的DataTable中的數據顯示在aspx頁面的DataGrid上。

  數據綁定代碼:

//對子目錄數據列表DirGrid進行數據源定義和數據綁定
DirGrid.DataSource = CreateDataSourceDir();
DirGrid.DataBind();
//對文件數據列表FileGrid進行數據源定義和數據綁定
FileGrid.DataSource = CreateDataSourceFile();
FileGrid.DataBind();

  通過我們上邊介紹的主要方法,我們實現了對某個邏輯驅動器或目錄中的所有子目錄和文件進行了列表顯示,并且可以根據顯示結果更進一步的瀏覽子目錄或者查看文件的屬性和內容提要。瀏覽子目錄仍然是通過listdir.aspx這個程序,沒有任何子目錄級別要求,沒有目錄深度限制。
刪除子目錄和文件的主要方法和代碼:

  在刪除子目錄時,我們需要用到Directory.Delete (string,bool)方法,此方法有兩種:

  1.public static void Delete(string);

  從指定路徑刪除空目錄。

  2.public static void Delete(string, boolean);

  刪除指定的目錄并(如果指示)刪除該目錄中的任何子目錄,將boolean設置為true的話,則刪除此目錄下的所有子目錄和文件,否則將boolean設置為false。

  在這里我們使用了第二種方法,如果選擇刪除的話,將刪除此目錄下的所有子目錄和文件。

  注意:Directory 類的所有方法都是靜態的,因而無需具有目錄Directory的實例就可被調用。

/*實現刪除子目錄的方法,此方法為VS.NET自動添加,注意DataGridCommandEventArgs e為DirGrid中 CommandName="Delete" 的ButtonColumn的事件,通過此事件,我們可以得到是那一行的ButtonColumn按鈕列被點擊,進而確定我們需要刪除的子目錄的名稱*/
private void DirGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){
/*定義一個單元格,e.Item為此事件所發生行的所有項目,e.Item.Cells[1]為整個行的第二個單元格的內容,在此DataGrid中為子目錄的名稱
*/
TableCell ItemCell = e.Item.Cells[1];
//得到此子目錄的名稱的字符串
string item = ItemCell.Text;
//刪除此子目錄
Directory.Delete(item,true);
//刪除后進行數據綁定以更新數據列表
DirGrid.DataBind();
}

  在刪除文件時,我們需要用到File.Delete(string path);

  注意:File 類的所有方法都是靜態的,因而無需具有目錄的實例就可被調用。

private void FileGrid_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e) {
TableCell ItemCell = e.Item.Cells[1];
//得到此文件名稱的字符串
string item = ItemCell.Text;
//刪除此文件
File.Delete(item);
//刪除后進行數據綁定以更新數據列表
DirGrid.DataBind();
}

  通過上邊的主要方法我們在頁面上實現了一個刪除某一個子目錄或者文件的功能,此功能在測試時需要慎重使用,一旦刪除無法通過常規方法恢復。其他如目錄或文件改名、修改內容等方法都可以在此程序基礎上添加相應的功能,實現方法也很簡單。各位愛好者可以通過添加相應功能,使之擴充為一個基于Web的服務器文件管理系統。我們也可以由此看到這個程序的危害性,一個沒有對此安全隱患采取防范措施的服務器的文件系統就都暴露在了使用此程序的用戶面前。
程序三:顯示文件屬性和內容的程序showfile.aspx

  在顯示屬性和內容時需要用到的兩個主要的類:

  System.IO.FileInfo:提供創建、復制、刪除、移動和打開文件的實例方法,并且幫助創建 FileStream 對象。

  System.IO.StreamReader:實現一個 TextReader,使其以一種特定的編碼從字節流中讀取字符。除非另外指定,StreamReader的默認編碼為 UTF-8,而不是當前系統的 ANSI 代碼頁。UTF-8 可以正確處理 Unicode 字符并在操作系統的本地化版本上提供一致的結果。

  Showfile.aspx頁面主要代碼:

<asp:Label id="FileDetail" runat="server"/>

  我們只是將文件的屬性信息和部分內容顯示在此Label上。所以沒有其他復雜的代碼。

  獲取文件信息和內容的主要代碼都在Page_Load方法中(代碼在showfile.aspx.cs文件中):

//接收傳入的參數,確定需要操作的文件名稱
strFile2Show = Request.QueryString["file"];
//根據文件名實例化一個FileInfo對象
FileInfo fi = new FileInfo(strFile2Show);
FileDetail.Text = "文件名:";
FileDetail.Text += strFile2Show+"<br>";
FileDetail.Text += "文件大小";
//獲得文件的大小,然后變換單位為KB
FileDetail.Text += (fi.Length/1024).ToString()+"K<br>";
FileDetail.Text += "創建文件時間:";
//獲得文件的創建日期
FileDetail.Text += fi.CreationTime.ToString();
FileDetail.Text += "上次訪問時間:";
//獲得文件的上次訪問日期
FileDetail.Text += fi.LastAccessTime.ToString()+"<br>";
FileDetail.Text += "上次寫入時間:";
//獲得文件的上次寫入日期
FileDetail.Text += fi.LastWriteTime.ToString()+"<br>";
//實例化一個StreamReader對象,用于讀取此FileInfo的內容
StreamReader FileReader = fi.OpenText();
//定義一個長度為1000的字符數組作為緩沖區
char[] theBuffer = new char[1000];
/*ReadBlock方法:從當前流中讀取最大數量的字符并從索引開始將該數據寫入緩沖區。
參數:
char[] buffer:方法返回時,包含指定的字符數組
int index:buffer 中開始寫入的位置
int count:最多讀取的字符數
*/
int nRead = FileReader.ReadBlock(theBuffer,0,1000);
FileDetail.Text += new String(theBuffer,0,nRead);
//關閉此 StreamReader 并釋放與之關聯的所有系統資源
FileReader.Close();

  到目前為止,我們實現了一個簡單的web頁面的服務器磁盤管理應用程序,可以查看、刪除目錄和文件。如果需要修改文件、新建文件和文件夾等功能,只需稍作修改,添加上相應的代碼就可以。由于我們只是通過這個程序說明服務器中存在的安全隱患,所以在這里就不再實現這些功能了。

  通過這三個簡單的程序,我想大家已經能夠清楚的認識到這一漏洞的危害性了,如果我們不加防范的話,其他用戶的程序就能被惡意使用此功能的用戶查看、刪除,服務器的系統日志、系統文件也沒有任何安全可言了。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
国产乱码精品| 欧美日韩国产bt| 欧美在线亚洲综合一区| 久久 天天综合| 午夜亚洲福利老司机| 国产精品久久久久aaaa樱花| 国产精品网站一区| 欧美成人女星排行榜| 欧美亚洲精品一区| 国产精品国产精品| 99热在线精品观看| 精品999在线观看| 午夜国产精品视频| 午夜精品福利一区二区三区蜜桃| 中文字幕一区av| 亚洲丶国产丶欧美一区二区三区| 一区二区三区欧美亚洲| 亚洲男人天堂一区| 一区二区三区中文字幕在线观看| 亚洲国产成人av好男人在线观看| 亚洲精品日韩专区silk| 亚洲综合色噜噜狠狠| 日韩国产在线一| 亚洲超丰满肉感bbw| 亚洲电影你懂得| 轻轻草成人在线| 国产一区二区三区在线观看免费视频 | 久久免费黄色| 欧美电影在哪看比较好| 日韩精品中文字幕一区二区三区| 日韩一级完整毛片| 欧美日韩精品一区二区在线播放| 久久久综合视频| 国产精品理论片在线观看| 1024成人网色www| 国产精品电影院| 日本三级韩国三级欧美三级| 六月丁香综合在线视频| 国产成人av网站| 国产福利91精品一区二区三区| 国产成人综合自拍| 91麻豆国产福利在线观看| 欧美特黄一区| 欧美亚洲在线| 在线成人av网站| 日韩视频在线永久播放| 久久免费看少妇高潮| 日韩久久一区二区| 蜜桃一区二区三区在线观看| 丁香婷婷综合色啪| 国产麻豆精品久久一二三| 99re成人精品视频| 国产精品久久777777毛茸茸| 美女主播一区| 日韩精品一区二区三区在线播放| 国产亚洲人成网站| 一区二区三区四区视频精品免费| 午夜精品福利在线| 成人99免费视频| 中文一区在线| 欧美一级搡bbbb搡bbbb| 一级特黄大欧美久久久| 国产一区二区在线电影| 韩国一区二区三区在线观看| 亚洲免费中文| 欧美精品一区二区三区蜜桃视频| 亚洲欧洲日产国码二区| 国产精品自产自拍| 久久精品中文| 国产精品热久久久久夜色精品三区| 午夜av一区二区三区| 国产成人丝袜美腿| 国产美女精品| 国产三级欧美三级日产三级99| 亚洲成人www| 一区视频在线| 日本精品一区二区三区高清| 国产精品夫妻自拍| 视频一区中文字幕国产| 91理论电影在线观看| 欧美午夜精品免费| 亚洲人成人一区二区在线观看| 国产乱子伦视频一区二区三区| 亚洲精选一区| 精品国产精品一区二区夜夜嗨| 日日夜夜精品视频天天综合网| 欧美jizzhd精品欧美巨大免费| 国产精品乱人伦一区二区| 日韩电影在线一区二区| 欧美精品三级| 日韩欧美成人激情| 久久精品国产久精国产爱| 国产成人自拍高清视频在线免费播放| 色噜噜狠狠成人网p站| 亚洲欧美日韩在线| 成人国产精品免费观看视频| 欧美一区二区三区日韩视频| 免费人成在线不卡| 国产亚洲一区在线播放| 欧美激情在线一区二区三区| 国产传媒一区在线| 欧美日韩免费一区二区三区| 国产精品看片你懂得| 欧美日韩在线高清| 久久日韩粉嫩一区二区三区| 国产精品一二三四| 欧美成人乱码一区二区三区| 国产一区二区三区在线观看精品 | 国产婷婷精品| 国产精品免费久久| 亚洲欧美亚洲| 久久精品在线免费观看| 国产成人亚洲综合a∨婷婷图片| 欧美人伦禁忌dvd放荡欲情| 日本不卡一二三| 狼狼综合久久久久综合网 | 爽好多水快深点欧美视频| 欧美日韩亚洲免费| 日韩毛片在线免费观看| 亚洲国产精品日韩| 一区免费观看视频| 国产精品久久久免费| 亚洲国产中文字幕| 午夜宅男欧美| 一区二区三区毛片| 在线观看精品一区| 国产一区二区伦理片| 欧美精品99久久久**| 欧美一区在线看| 国产精品久久久久永久免费观看| 国语精品中文字幕| 午夜久久久久久| 欧美三级日韩三级| 成人性生交大片| 欧美日韩亚洲综合一区| 欧美激情第8页| 国产精品国产三级国产普通话99 | 成人免费观看av| 亚洲私人影院在线观看| 91精品办公室少妇高潮对白| 成人18精品视频| 亚洲一区二区中文在线| 91精品国产综合久久香蕉的特点 | 国产精品少妇自拍| 91久久精品午夜一区二区| 91蝌蚪porny成人天涯| 亚洲福利国产精品| 欧美精品一区二区在线观看| 国产美女诱惑一区二区| 成人永久看片免费视频天堂| 亚洲美女淫视频| 欧美大片一区二区三区| 国产麻豆综合| 色综合久久中文字幕综合网| 视频一区二区欧美| 国产亚洲1区2区3区| 在线视频一区二区三区| 欧美午夜精品| 国产麻豆精品95视频| 亚洲综合偷拍欧美一区色| 精品sm在线观看| 欧美性大战久久久久久久 | 欧美高清一级片在线| 国产精品制服诱惑| 91理论电影在线观看| 国模一区二区三区白浆| 亚洲一区二区精品3399| 国产欧美日韩视频一区二区 | 免费在线观看视频一区| 亚洲欧美另类小说视频| 久久婷婷综合激情| 在线亚洲免费视频| 国产日韩一区欧美| 欧美精品二区| 成人黄色在线网站| 极品少妇xxxx精品少妇偷拍| 亚洲一级片在线观看| 国产精品网曝门| 精品日韩欧美一区二区| 欧美精品三级在线观看| 久久久水蜜桃av免费网站| 亚洲三级网站| 伊人久久成人| 欧美日本精品| 99re这里只有精品首页| 国产成人av在线影院| 国产一区二区三区四| 麻豆91精品91久久久的内涵| 亚洲va欧美va人人爽| 亚洲在线一区二区三区| 亚洲黄网站在线观看| 成人欧美一区二区三区| 国产精品人人做人人爽人人添 | 91视频免费观看| 91在线精品一区二区三区| 国产成人在线视频网站| 国产永久精品大片wwwapp| 久久国内精品自在自线400部| 日本系列欧美系列| 婷婷综合另类小说色区|