Итак, я сделал форму, где вы входите в систему из БД. Код должен быть понятным.Хорошая профилактика от инъекции MYSQL?
private void button1_Click(object sender, EventArgs e)
{
try
{
string MyConnection = "datasource=localhost;port=3306;username=root;password=xdmemes123";
MySqlConnection myConn = new MySqlConnection(MyConnection);
MySqlCommand SelectCommand = new MySqlCommand("select * from life.players where DBname='" + this.username.Text + "' and DBpass='" + this.password.Text +"' ; ", myConn);
MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
int count = 0;
while (myReader.Read())
{
count = count + 1;
}
if (count == 1)
{
Properties.Settings.Default.Security = "Secure";
Properties.Settings.Default.AdminName = username.Text;
Properties.Settings.Default.AdminPass = password.Text;
Properties.Settings.Default.Save();
MessageBox.Show("Logged in");
this.Hide();
Form2 f2 = new Form2();
f2.ShowDialog();
}
else if (count > 1)
{
Properties.Settings.Default.Security = "Insecure";
MessageBox.Show("Incorrect!");
}
else
{
Properties.Settings.Default.Security = "Insecure";
MessageBox.Show("Incorrect!");
myConn.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Something went wrong. Error copied to clipboard.");
Clipboard.SetText(ex.Message);
}
}
Но мой вопрос в том, что это безопасно от инъекций MYSQL? А если нет, что я могу сделать, чтобы сделать его безопасным?
И если возможно, напишите или объясните, как написать этот код. Я совершенно новичок в этой кодировке, но действительно люблю ее и хотел бы продолжить свою программу.
Нет, это не безопасно от SQL инъекций. Идите читать, и вы сразу увидите, почему. – DavidG
Именно так внедрена уязвимость SQL-инъекций! – pid
'this.username.Text ==" 0 '; удалить из некоторых таблиц - "' –