Как проверить, что файл excel/ csv содержит нежелательные специальные символы при чтении и загрузке их в C#?
Я читаю файл excel и сохраняю данные в БД через элемент управления Fileupload в asp.net с помощью c#.
Проблема в том, что пользователь экрана истории загруженных файлов может загрузить и инъекционные атаки могут быть установлены на загруженные файлы. Поэтому мне нужно блокировать инъекционную атаку во время самой загрузки
Мне нужно прочитать файл полностью и проверить, что же содержат эти символы (+, =, "", @) и проверить правильность самой загрузки. Если он будет читать строку за строкой, это вызовет проблему производительности/тайм-аута, особенно с массовыми файлами.
Что я уже пробовал:
Основной код выглядит следующим образом:
(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("example.xls") + "; Extended Properties=Excel 8.0");//OledbConnection and // connectionstring to connect to the Excel Sheet try { //After connecting to the Excel sheet here we are selecting the data //using select statement from the Excel sheet OleDbCommand ocmd = new OleDbCommand("select * from [Sheet1$]", oconn); oconn.Open(); //Here [Sheet1$] is the name of the sheet //in the Excel file where the data is present OleDbDataReader odr = ocmd.ExecuteReader(); string fname = ""; string lname = ""; string mobnum = ""; string city = ""; string state = ""; string zip = ""; while (odr.Read()) { fname = valid(odr, 0);//Here we are calling the valid method lname = valid(odr, 1); mobnum = valid(odr, 2); city = valid(odr, 3); state = valid(odr, 4); zip = valid(odr, 5); //Here using this method we are inserting the data into the database insertdataintosql(fname, lname, mobnum, city, state, zip); } oconn.Close(); } catch (DataException ee) { lblmsg.Text = ee.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Inserted Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Green; }