C#判斷上傳文件是否是圖片以防止木馬上傳的方法
更新時間:2014年07月25日 12:02:57 投稿:shichen2014
這篇文章主要介紹了C#判斷上傳文件是否是圖片以防止木馬上傳的方法,對于網(wǎng)絡(luò)安全來說至關(guān)重要,需要的朋友可以參考下
很多時候木馬程序會偽裝成其他格式的文件上傳到網(wǎng)站,最常見的如圖片格式。本文就以C#為例講述C#判斷上傳文件是否是圖片以防止木馬上傳的方法,具體方法如下:
方法一:用image對象判斷是否為圖片
/// <summary>
/// 判斷文件是否為圖片
/// </summary>
/// <param name="path">文件的完整路徑</param>
/// <returns>返回結(jié)果</returns>
public Boolean IsImage(string path)
{
try
{
System.Drawing.Image img = System.Drawing.Image.FromFile(path);
return true;
}
catch (Exception e)
{
return false;
}
}
方法二,判斷文件頭
/// <summary>
/// 根據(jù)文件頭判斷上傳的文件類型
/// </summary>
/// <param name="filePath">filePath是文件的完整路徑 </param>
/// <returns>返回true或false</returns>
private bool IsPicture(string filePath)
{
try
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs);
string fileClass;
byte buffer;
buffer = reader.ReadByte();
fileClass = buffer.ToString();
buffer = reader.ReadByte();
fileClass += buffer.ToString();
reader.Close();
fs.Close();
if (fileClass == "255216" || fileClass == "7173" || fileClass == "13780" || fileClass == "6677")
//255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
測試顯示方法二針對常規(guī)修改的木馬有效,也就是直接修改擴(kuò)展名的,比如把.asp改成.jpg這種。但是對于那種用工具生成的jpg木馬則沒有效果。此時推薦大家使用第一種方法。
您可能感興趣的文章:
- C#實(shí)現(xiàn)HTTP上傳文件的方法
- C# 通用文件上傳類
- asp.net(c#)開發(fā)中的文件上傳組件uploadify的使用方法(帶進(jìn)度條)
- C# 文件上傳 默認(rèn)最大為4M的解決方法
- asp.net(C#)中上傳大文件的幾中常見應(yīng)用方法
- C#采用HttpWebRequest實(shí)現(xiàn)保持會話上傳文件到HTTP的方法
- ASP.NET(C#)實(shí)現(xiàn)一次性動態(tài)上傳多張圖片的代碼(多個文件)
- C#實(shí)現(xiàn)Web文件上傳的兩種方法實(shí)例代碼
- jQuery結(jié)合C#實(shí)現(xiàn)上傳文件的方法
- C#實(shí)現(xiàn)文件上傳以及多文件上傳功能
相關(guān)文章
Unity的BuildPlayerProcessor實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的BuildPlayerProcessor實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
c# 代碼調(diào)試技巧和如何遠(yuǎn)程調(diào)試
這篇文章主要介紹了c# 代碼調(diào)試技巧和如何遠(yuǎn)程調(diào)試,幫助大家更好的理解和使用c#編程語言,感興趣的朋友可以了解下2020-11-11
C#在WinForm中使用WebKit傳遞js對象實(shí)現(xiàn)與網(wǎng)頁交互的方法
這篇文章主要介紹了C#在WinForm中使用WebKit傳遞js對象實(shí)現(xiàn)與網(wǎng)頁交互的方法,涉及針對WebBroswer控件及WebKit控件的相關(guān)使用技巧,需要的朋友可以參考下2016-03-03

