Действительно ли необходимо Установить Указатели на ноль в Objective C После выпуска?

В любом запросе UNION количество столбцов должно быть одинаковым в каждом SELECT, который вы объединяете с UNION. Другими словами, следующее является ошибкой, поскольку число столбцов не одинаково:

SELECT a, b, c FROM table1
UNION 
SELECT a, b FROM table1

При выполнении SQL-инъекции вы можете не знать количество столбцов в списке выбора запроса ты эксплуатируешь. Добавьте больше столбцов с NULL по мере необходимости. Просто продолжайте пытаться, пока не получите что-то успешное.

SELECT * FROM drinks WHERE drinkname='smirnoff' 
UNION 
SELECT COLUMN_NAME, NULL, NULL, NULL, ...
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'drinks'

Это может показаться утомительным и подверженным ошибкам.

Но преступники, которые совершают атаки SQL-инъекций, довольно мотивированы.

22
задан ThinkingStiff 30 June 2012 в 05:29
поделиться

3 ответа

Not necessary, but good practice. If you were to inadvertently reference it after release, bad things could happen, but in Objective C there isn't any harm in referencing a nil.

28
ответ дан 29 November 2019 в 05:16
поделиться

Setting an instance variable to nil is more useful in a multi-threaded application than a single-threaded one, since with multiple threads you can't always guarantee that an instance variable will only be read before it's released.

I generally don't bother in single-threaded applications, unless there's some other compelling reason.

3
ответ дан 29 November 2019 в 05:16
поделиться

Objective-C на самом деле то же самое, что и C с причудливым препроцессором.

Установка указателя на nil в Objective-C не влияет на то, на что когда-то указывал этот указатель.

0
ответ дан 29 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: