}

Искупление греха в ColdFusion

При работе с ColdFusion используйте cfqueryparam в теге , чтобы обезопасить запрос с параметрами.

Искупление греха в SQL

Не следует исполнять в хранимой процедуре строку, полученную из не заслуживающего доверия источника, как процедуру. В качестве одного из механизмов глубоко эшелонированной обороны можно воспользоваться некоторыми функциями для проверки корректности строкового параметра. В примере ниже проверяется, что входной параметр содержит ровно четыре цифры. Заметим, что длина параметра заметно уменьшена, чтобы усложнить передачу любой другой входной информации.

CREATE PROCEDURE dbo.doQuery(@id nchar(4))

AS

DECLARE @query nchar(64)

IF RTRIM(@id) LIKE '[0-9][0-9][0-9][0-9]'

BEGIN

SELECT @query = 'select ccnum from cust where id = ''' + @id + ''''

EXEC @query

END

RETURN

Или еще лучше – потребуйте, чтобы параметр был целым числом:

CREATE PROCEDURE dbo.doQuery(@id smallint)

В Oracle lOg, как и в Microsoft SQL Server 2005, добавлены совместимые со стандартом POSIX регулярные выражения. Поддержка регулярных выражений реализована также для DB2 и Microsoft SQL Server 2000. В MySQL регулярные выражения поддерживаются с помощью оператора REGEXP. Ссылки на все эти решения вы найдете в разделе «Другие ресурсы».

Конец ознакомительного фрагмента.

Продолжите чтение, купив полную версию книги
Купить полную книгу