Vaatimukset: Projekti käyttää EF ORM -kehystä tietokannan lisäämiseen, poistamiseen, muokkaamiseen ja tarkistamiseen, mutta monimutkaisten kyselyiden edessä Linqin ja Lambdan käyttö ei välttämättä ole mahdollista parempiin kyselyihin, joten meidän täytyy käyttää EF 6:ta natiivien SQL-lauseiden suorittamiseen kyselyihin.
Raaka SQL-kysely (EF6):Hyperlinkin kirjautuminen on näkyvissä.
Koska SQL-lauseiden täytyy kantaa where-ehto, parametrin arvo kuljetetaan URL-parametrin kautta.
Ensinnäkin SQL-lauseemme käyttää merkkijonojen yhdistämistä kyselyyn seuraavasti:
Koodi on seuraava:
Näet tietokannan suorittamat SQL-lauseet seuraavasti:
VALITSE NIMI [Luokituksesta] MISSÄ Nimi = 'Mobiilikehitys'; valitse 1; --' KuluaTapa, jolla SQL-lauseet on yhdistetty, on vaarassa joutua injektioon。
Muokkasimme koodia estääksemme SQL-injektiohyökkäykset parametrisoimalla kyselyt, ja koodi on seuraava:
exec sp_executesql N'SELECT Name FROM [Luokittelu] WHERE Name = @n',N'@n nvarchar(17)', @n=N'Mobile Dev''; valitse 1; --'
Sen sijaan, että käyttäisi suoraan splicing-toimintoa, EF Core muuntaa sen parametrisoiduiksi SQL-lauseiksi. Lähteet ovat seuraavat:
(Loppu)
|