Я использую asp.net mvc 4
, чтобы создать сайт, на котором пользователь может загрузить файл .xlsx
и сохранить данные в таблице MSSQL. Я хочу удостовериться, что перед сохранением данных не было никаких недопустимых символов, таких как инструкции SQL-инъекций в файле. До сих пор я тестировал $
знак, который отлично работает, но он будет только ловить, если ячейка имеет только этот символ, а не между символами. Вот мой код,Проверка незаконных символов при загрузке файла excel в asp.net mvc
Контроллер
public ActionResult BulkReadings()
{
string pathToExcelFile = System.IO.Path.Combine(Server.MapPath("~/ExcelFiles/"), "BulkReads.xlsx");
string sheetName = "Sheet1";
var excelFile = new ExcelQueryFactory(pathToExcelFile);
var getSheet = from a in excelFile.Worksheet(sheetName) select a;
string Subject = "";
string Type = "";
string Reading = "";
foreach (var a in getSheet)
{
if (a["Subject"] == "$" || a["Type"] == "$" || a["Reading"] == "$") // This is where it checks for the "$" sign
{
if (System.IO.File.Exists(pathToExcelFile))
{
System.IO.File.Delete(pathToExcelFile);
}
TempData["meter_fail"] = "Error! Illegal Characters!";
return RedirectToAction("MeterManager");
}
else
{
Subject = a["Subject"];
Type = a["Type"];
Reading = a["Reading"];
try
{
Reading newEntry = new Reading();
newEntry.title = Subject;
newEntry.type = Type;
newEntry.reading1 = Reading;
rentdb.Readings.Add(newEntry);
}
catch
{
if (System.IO.File.Exists(pathToExcelFile))
{
System.IO.File.Delete(pathToExcelFile);
}
TempData["meter_fail"] = "Error! Upload Failed!";
return RedirectToAction("MeterManager");
}
}
}
rentdb.SaveChanges();
if (System.IO.File.Exists(pathToExcelFile))
{
System.IO.File.Delete(pathToExcelFile);
}
TempData["meter_success"] = "Reading(s) uploaded successfully!";
return RedirectToAction("MeterManager");
}
Как я могу проверить для нескольких недопустимых символов, которые могут быть представлены в виде одного или с другими персонажами в клетке? Нужна эта помощь плохо! Благодарю.
До тех пор, пока вы используете параметризованные запросы, которые не должны дезинфицировать файл против шила инъекции. –
Спасибо, но я не понял. Пожалуйста, объясните подробности. –
Awl. Хах. Скошенный автокоррект. Предполагалось, что он будет sql. –