Zranitelný je v podstatě kdekoli, kde spojujete řetězce za účelem vytvoření příkazu SQL, zejména ten, který pochází z uživatelského vstupu.
Místo toho použijte parametry SQL, které lze přidat do vlastnosti Parameters vašeho příkazu SQL (SQLcmd
zde).
Ukážu vám příklad s jedním z vašich parametrů – změňte text SQLCommand na:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Kde @pIDNo
je "zástupný symbol" v řetězci pro hodnotu parametru, který se odesílá odděleně od příkazu v Kolekce SQLParameters
.
Poté můžete přidat parametr se stejným názvem jako tento „zástupný symbol“ a hodnotu (odvozí typ z hodnoty, kterou vám poskytneme).
Zde je příklad z dříve:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)