This is more of a concept question.
I have build a small wpf app in c# to read a csv of wage roll data and insert it into my sql 2005 db, no edits or deletes required.
I have take all the steps I can think of to protect the application against users entering sql injection and read around the subject. The steps include connection string user as low grade sql user, tightly matching my datagrid control columns to the sql table and non editable user inputs (comboboxes, file and date picker, only a certain csv filename). My update method off the data source is merge the datatable where the csv is read into and displayed in the datagrid to the sql datatable and then update.
I have now had a thought that the most obvious weakness is the csv file itself (that I can see!). I could see a slight chance that someone could create a csv with the correct filename and input in a column of say 'delete [some statement] -- etc and read it in.
So now I feel the need to check this input but a lot of articles say this client side stuff is a waste of time. What are other peoples thoughts? I was thinking a simple class with a list of things to check e.g. 'sp', ';', 'Select', 'delete','--' and then a function to check the csv column input against the list and handle as required.
Is class idea a bit crude?