Problem med treeview, sammanband mellan C# och SQL

Permalänk

Du ska dock alltid skydda dig så långt ner innan, annars kan man komma in från sidan och göra en attack. Förstår inte varför du säger emot när alla som vet säger att du bör göra annorlunda

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Säger emot?

Jag försöker snarare jämföra metoder, vara lite kritisk. Vill att projektet ska sluta som ett bra projekt och inte ett dåligt. Förlåt om jag verkar negativ eller så

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk

Haha, det jag menar är att det sättet du skyddar dig på nu inte är ett bra sätt. För det första så vill kanske en användare använda de tecken du stoppar och då blir ditt sätt inte bra. För det andra är det säkrare att använda sig av det rätta sättet istället för att blacklista tecken

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

formatet på användarnamnet kommer vara: fornamn.efternamn@domän.skola.nu
lösenordet kommer vara slumpat av det programmet som lägger till användare (redan färdigt) och kommer vara 11 tecken blandat med siffror, ungefär såhär: t2i93m53orl.

Programmet kollar även om användarnamnet slutar på @domän.skola.nu eller inte. Om den gör det aktiveras nu logga in knappen, eftersom den följer mallen.

Hur ska jag skydda om jag inte blacklistar tecken som kan skada/injecta SQL servern? O_o''

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Skrivet av freddyfresh:

formatet på användarnamnet kommer vara: fornamn.efternamn@domän.skola.nu
lösenordet kommer vara slumpat av det programmet som lägger till användare (redan färdigt) och kommer vara 11 tecken blandat med siffror, ungefär såhär: t2i93m53orl.

Programmet kollar även om användarnamnet slutar på @domän.skola.nu eller inte. Om den gör det aktiveras nu logga in knappen, eftersom den följer mallen.

Hur ska jag skydda om jag inte blacklistar tecken som kan skada/injecta SQL servern? O_o''

Som sagt, vad använder du för databas, mysql?

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Japp. Men använder inte MSSQL.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

verkar nästan jobbigt för att få lite säkerhet ^^,

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Skrivet av freddyfresh:

verkar nästan jobbigt för att få lite säkerhet ^^,

haha, ja det är ju klart. Det är inte enkelt att ha det säkert. Dock så är SQL injections ganska enkelt att skydda sig emot.

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Det löser man nog

Fixade lite nyare design till programmet idag, eftersom båda programmen i princip är klara utom SQL injektions delen. Tänkte dra det imorgon. När programmet är klart blir det såklart lite screens

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Medlem

Men jag har bara en fråga, jag skriver inte till databasen förrän i själva ärende delen av programmet men gäller injektioner överallt där SQL kod förekommer?

Om vi tar denna koden som exempel som är min nuvarande:

protected void InsertIntoDatabase(object sender, EventArgs e) { //conn är då alltså databaskontakt metod som existerar i DBConnection från MySql. //allt i conn.Connect defineras på annan plats conn.Connect("server","serverUsername","serverUserPassword"); conn.SelectDatabase("SQLTable"); string cmdStr = "insert into errand values(null, "användarnamnet här","emailadress här", "ärende kategori här", "ärende text här", "svar här, skrivs in som " " som default ", "svarad av, defineras inte förrän admin har svarat på ärende", NOW(), NOW() }

Detta är vad jag hittade på internet som var förslag på hur jag skulle göra:

protected void btnGoodAddShipper_Click(object sender, EventArgs e) { string connStr = "Server=(local);Database=Northwind;Integrated Security=SSPI"; // this is good because all input becomes a // parameter and not part of the SQL statement string cmdStr = "insert into Shippers (CompanyName, Phone) values (" + "@CompanyName, @Phone)"; using (SqlConnection conn = new SqlConnection(connStr)) using (SqlCommand cmd = new SqlCommand(cmdStr, conn)) { // add parameters cmd.Parameters.AddWithValue ("@CompanyName", txtCompanyName.Text); cmd.Parameters.AddWithValue("@Phone", txtPhone.Text); conn.Open(); cmd.ExecuteNonQuery(); } }

Efter lite tweak på koden ovan försökte jag forma min kod efter mallen.. vart lite sånt här:

string connStr = "Server=(local);Database=errands;Integrated Security=SSPI"; string cmdStr = "insert into errands (username, emailadress, errandCategory, question, answer, AnsweredBy, TimeInserted, TimeAnswered) values (" + "@username, @emailadress, @errandCategory, @question, @answer, @AnsweredBy, @TimeInserted, @TimeAnswered)"; using (SqlConnection conn = new SqlConnection(connStr)) using (SqlCommand cmd = new SqlCommand(cmdStr, conn)) { // add parameters cmd.Parameters.AddWithValue ("@username", label1.Text); cmd.Parameters.AddWithValue ("@emailadress", textBox3.Text); cmd.Parameters.AddWithValue ("@errandCategory", textBox6.Text); cmd.Parameters.AddWithValue ("@question", richTextBox1.Text); cmd.Parameters.AddWithValue ("@answer", ""); cmd.Parameters.AddWithValue ("@AnsweredBy",""); cmd.Parameters.AddWithValue ("@TimeInserted", "NOW()"); cmd.Parameters.AddWithValue ("@TimeAnswered","NOW()"); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); }

Prövade köra koden manuellt mot databasen (i sql kommando klienten), funkade utan problem. Men antar att den också ska uppfylla något krav, säkerheten.
Du får ursäkta @kurrekula men jag är inte direkt så insatt i SQL ^^

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk

Hehe, det ser bra ut (kollade inte jättenoggrant).

Ja, du kan sqlinjecta på en sök-funktion, inloggning etc.

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Okej men då ska jag prova den nya koden istället får nog fin justera den lite extra nu när den ska forma sig efter den befintliga koden ^^

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Skrivet av freddyfresh:

Okej men då ska jag prova den nya koden istället får nog fin justera den lite extra nu när den ska forma sig efter den befintliga koden ^^

Det är därför man jobbar med data layers

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Jo det hade ju varit smidigare
tänkte programmet ska vara säkert men fortfarande inte så avancerat ^^ inte för att jag är lat utan för att spara tid

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Medlem

Lite bilder på designen som den är nu:

Inloggningsskärmen:

Förändringar som väntar:

1. Sänka styrkan på den svarta färgen i knapparna (mot en gråare nyans).

Layout i programmet:

Förändringar som väntar:

1. Snyggare design till knapparna
2. Snyggare font'er eller behålla dessa.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk
Medlem

Har lite smått påbörjat de nya programmet som ska fungera som ärende hanterare, du ska alltså kunna läsa hela ärendet i C# också.

Såhär ser designen ut för det programmet:

meningen är att man ska då klicka på en rad i denna datahållaren och sedan få fram mer information av ärendet genom denna rutan:

Är ganska nöjd med hur det har gått hittills
fortfarande lite problem med att fylla i datan i fälten men jag jobbar på det ^^,

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40