> Подумайте, миллион долларов или чистая совесть.
Боюсь, не все готовы пожертвовать миллионом во имя совести =)
Британцы, вон, с первым встречным готовы за мильён переспать [пруф где-то в комментариях]. А вы говорите об обычной обиде на какое-то мировое сообщество, пусть даже на математическое. =)
Не знаю о схемах отмывания, зато знаю как всевозможные сомнительные организации прикрываются вывеской «благотворительный фонд».
Например, была у нас одна секта, что-то вроде «Тренинги лидерства». Зомбирование и вытягивание денег.
Часть денег руками своих же членов они пускали на благотворительность (по моим расчетам 20-25 процентов), а остальные, скорее всего, выводились куда-то в оффшор.
Такие дела.
Застрял на «Ветеране». Не настолько комично, конечно, но отчасти узнаю самого себя.
И, да, никогда не начинал и не буду начинать имена классов с собственных инициалов. Считаю, что за такое нужно сразу больно бить линейкой по рукам, как в школе.
Вообще всё несколько преувеличено, на мой взгляд. Но, да, типичные ошибки как на ладони =)
О подготовительных заданиях сказано только в части «Русский язык» и то мельком.
При прочтении создаётся стойкое впечатление, что речь именно о самом экзамене.
Мне кажется, что все эти задачи взяты из методичек подготовительных курсов.
А люди, составляющие эти методички != люди, составляющие задания на ЕГЭ.
Сам сдавал ЕГЭ ещё в далёком 2002 году, когда его только-только ввели в качестве эксперимента в нескольких регионах.
И даже тогда, на этапе эксперимента, я не заметил каких-либо вопиющих неточностей в тестовых заданиях. Очень сомневаюсь, что с тех пор что-то существенно могло измениться. По крайней мере, не слышал особых претензий от людей, которые сдавали ЕГЭ в последние несколько лет.
Не думаю, что кого-то удивлю, если скажу, что финансовые системы тоже могут работать на Perl и PHP.
Действительно, если существует возможность перехвата и модификации запроса на уровне приложение->БД, то логично будет использовать хранимые процедуры. Но это уже, скорее, больше относится к типу атак MitM, чем к SQL-Injection.
Другое дело — мне тяжело представить такой случай. Возможно потому, что прикладным программированием я не занимался уже несколько лет, всё больше web да интранет.
P.S. Почему-то вспомнилась эпическая байка про программистов PЖД, которые гоняют всю базу целиком между клиентом и сервером ^^
Мсье действительно извращенец.
В данном случае хранимые процедуры БД не дают никакой прибавки к защищенности кода.
Поясню. Перед тем, как создвать динамический запрос нам так или иначе необходимо контролировать тип динамических данных. Иными словами ни на одном участке кода, где используются или каким-то чудесным образом могут появиться генерируемые пользователем данные (например, где-то какой-то функцией возвращаемые), необходимо контролировать тип данных, с которыми мы работаем и использовать принудительное приведение типов. Обычный intval() отсечет половину проблем в местах, где мы ждём id/флаг, а злоумышленник может подставить строку. Для строковых/текстовых параметров прекрасно работает mysql_real_escape_string().
И, да, первое, что я делаю, начиная писать что-то новое — выношу все функции по работе с БД в отдельный класс, в котором присутствуют все необходимые проверки перед выполнением запроса, начиная с самых простых и заканчивая самыми параноидальными.
Плюс к тому, подобный подход позволяет намного быстрее рефакторить код и в случае возникновения ошибки — править его только в одном месте и не искать по всему коду подобные уязвимые куски.
Боюсь, не все готовы пожертвовать миллионом во имя совести =)
Британцы, вон, с первым встречным готовы за мильён переспать [пруф где-то в комментариях]. А вы говорите об обычной обиде на какое-то мировое сообщество, пусть даже на математическое. =)
Например, была у нас одна секта, что-то вроде «Тренинги лидерства». Зомбирование и вытягивание денег.
Часть денег руками своих же членов они пускали на благотворительность (по моим расчетам 20-25 процентов), а остальные, скорее всего, выводились куда-то в оффшор.
Такие дела.
Пруф
И, да, никогда не начинал и не буду начинать имена классов с собственных инициалов. Считаю, что за такое нужно сразу больно бить линейкой по рукам, как в школе.
Вообще всё несколько преувеличено, на мой взгляд. Но, да, типичные ошибки как на ладони =)
Ваш К.О.
Удачи на экзаменах!
При прочтении создаётся стойкое впечатление, что речь именно о самом экзамене.
Это обычная задача на логику, а не на счёт.
А люди, составляющие эти методички != люди, составляющие задания на ЕГЭ.
Сам сдавал ЕГЭ ещё в далёком 2002 году, когда его только-только ввели в качестве эксперимента в нескольких регионах.
И даже тогда, на этапе эксперимента, я не заметил каких-либо вопиющих неточностей в тестовых заданиях. Очень сомневаюсь, что с тех пор что-то существенно могло измениться. По крайней мере, не слышал особых претензий от людей, которые сдавали ЕГЭ в последние несколько лет.
Перевода так и не откопал.
Действительно, если существует возможность перехвата и модификации запроса на уровне приложение->БД, то логично будет использовать хранимые процедуры. Но это уже, скорее, больше относится к типу атак MitM, чем к SQL-Injection.
Другое дело — мне тяжело представить такой случай. Возможно потому, что прикладным программированием я не занимался уже несколько лет, всё больше web да интранет.
P.S. Почему-то вспомнилась эпическая байка про программистов PЖД, которые гоняют всю базу целиком между клиентом и сервером ^^
В данном случае хранимые процедуры БД не дают никакой прибавки к защищенности кода.
Поясню. Перед тем, как создвать динамический запрос нам так или иначе необходимо контролировать тип динамических данных. Иными словами ни на одном участке кода, где используются или каким-то чудесным образом могут появиться генерируемые пользователем данные (например, где-то какой-то функцией возвращаемые), необходимо контролировать тип данных, с которыми мы работаем и использовать принудительное приведение типов. Обычный intval() отсечет половину проблем в местах, где мы ждём id/флаг, а злоумышленник может подставить строку. Для строковых/текстовых параметров прекрасно работает mysql_real_escape_string().
И, да, первое, что я делаю, начиная писать что-то новое — выношу все функции по работе с БД в отдельный класс, в котором присутствуют все необходимые проверки перед выполнением запроса, начиная с самых простых и заканчивая самыми параноидальными.
Плюс к тому, подобный подход позволяет намного быстрее рефакторить код и в случае возникновения ошибки — править его только в одном месте и не искать по всему коду подобные уязвимые куски.