Cerințe: Proiectul folosește cadrul EF ORM pentru a adăuga, șterge, modifica și verifica baza de date, dar în fața interogărilor complexe, s-ar putea să nu fie posibil să folosim Linq și Lambda pentru interogări mai bune, așa că trebuie să folosim EF 6 pentru a executa instrucțiuni SQL native pentru interogări.
Interogare SQL brută (EF6):Autentificarea cu hyperlink este vizibilă.
Deoarece instrucțiunile SQL trebuie să poarte condiția where, valoarea parametrului este trecută prin parametrul URL.
În primul rând, instrucțiunea noastră SQL folosește concatenarea stringurilor pentru a interoga, după cum urmează:
Codul este următorul:
Puteți vedea instrucțiunile SQL executate de bază de date astfel:
SELECT Name FROM [Clasificare] UNDE Nume = 'Mobile Development'; selectează 1; --' TreceModul în care sunt spliced instrucțiunile SQL riscă să fie injectate。
Am modificat codul pentru a preveni atacurile de injecție SQL prin parametrizarea interogărilor, iar codul este următorul:
exec sp_executesql N'SELECT Name FROM [Clasificare] UNDE Nume = @n',N'@n nvarchar(17)', @n=N'Mobile Dev''; selectează 1; --'
În loc să folosească direct splicing-ul, EF Core îl convertește în instrucțiuni SQL parametrizate. Referințele sunt următoarele:
(Sfârșit)
|