내 애플리케이션을 실행할 때 SQL 인젝션을 당기고있는 것 같다. 누군가 나를 위해 빠른 픽스를 제안했다면, 모든 것을 바꾸지 않는 편이 좋다. 내 첫번째 프로젝트 업데이트.내 WinForm이 SQL 인젝션을 받고있다.
당신은 내 SQL 구문에 오류가 있습니다;
string constring = "datasource=127.0.0.1;port=3306;username=root;password=welcome"; string Query = "insert into userdatabase.users (userid, email, passone, passtwo, lastname, firstname) values('" + this.userid_txt.Text + "','" + this.email_txt.Text + "','" + this.passone_txt.Text + "','" + this.passtwo_txt.Text + "','" + this.lastname_txt.Text + "','" + this.firstname_txt.Text + "') ;"; MySqlConnection conDataBase = new MySqlConnection(constring); MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase); MySqlDataReader myReader; try { conDataBase.Open(); myReader = cmdDataBase.ExecuteReader(); MessageBox.Show("Welcome to iDSTEM!"); while (myReader.Read()) { } } catch (Exception ex) { MessageBox.Show(ex.Message); }
오류가 있음을 언급 예컨대, 당신이 매개 변수를 사용해야합니다 주입을 방지하기 위해 중위
예, 그 코드에 취약 : 우리가 상상 경우 MySQL은 다음 매개 변수 이름의
@
접두사를 사용하여 명명 된 매개 변수를 지원하는지 나는 MySQL을 사용하지 않는, 그래서 내가 확실히 말할 수는 없지만, SQL 삽입 (아포스트로피와 관련된 좋은 구식 실패). 그래서 고쳐주세요. 질문은 무엇입니까? –이 코드의 어느 부분에서 SQL 주입을 일으키는 지 알아 보려면 결과에 영향을 미치지 않는 단일 '표시와 관련이 있습니다. – Bendlino
http://stackoverflow.com/a/3216248/2186023 – DrCopyPaste