Чтобы защитить от внедрения sql, я прочитал во введении к ColdFusion, что мы должны использовать тег cfqueryparam.С хранимыми процедурами требуется cfSqlType?
Но при использовании хранимых процедур, я передаю мои переменные, соответствующие объявления переменных в SQL Server:
DROP PROC Usr.[Save]
GO
CREATE PROC Usr.[Save]
(@UsrID Int
,@UsrName varchar(max)
) AS
UPDATE Usr
SET UsrName = @UsrName
WHERE [email protected]
exec Usr.[get] @UsrID
Q: Есть ли какое-либо значение в том числе cfSqlType, когда я звоню хранимую процедуру? Вот как я сейчас делаю это в Lucee:
storedproc procedure='Usr.[Save]' {
procparam value=Val(form.UsrID);
procparam value=form.UsrName;
procresult name='Usr';
}
Всегда данные задают ваши параметры. –
Согласовано. [Существует несколько причин для типизации параметров] (http: // stackoverflow.ком/вопросы/27049918/ColdFusion-параметризующий-а-querie/27066113 # 27066113). Хотя это относится к параметрам запроса, те же проблемы относятся к хранимым процессам. – Leigh
Это действительно действительно хорошая идея для проверки ваших параметров перед передачей их в запрос. Возможно, вы это делаете, но я обычно добавляю параметры 'form' (а также' url' в область 'variables', как только они будут проверены. –