«Говорят: «Денег нет, ничего нет». Да как нету денег, когда молодежь вся ездит на машинах, ходит по клубам? Ходит в этих норковых шубах, которые стоят фиг знает сколько. У каждого человека уже есть iPad, всякие ноутбуки. И я не верю в то, что говорят»
Думаю, имеются в виду русскоязычные хакеры, а страна их проживания (РФ или, например, США) и национальность (русские, евреи или, например, татары) не имеют значения.
А,, ну это в Москве, у нас в Екатеринбурге валидаторы для "Екарт" кондукторы носят на ремне, берут у пассажиров карточки и прикладывают к ним, наверное средний уровень интеллекта на Урале не позволяет пассажирам самостоятельно прикладывать карточку к валидатору.
Думаю, на сервере ведется лог всех действий по карточке. Там и будет что-то вроде (по крайней мере, если бы я разрабатывал систему, сделал бы так):
Время Действие Баланс до: Стоимость: Баланс после:
11:30 Платеж в пункте платежей #N 0 -200 200
12:00 Оплата проезда в автобусе, маршрут N 200 27 173
12:30 Оплата проезда в метро, станция M. 200 28 172
Легко определить, что у всех действий «баланс до» должен совпадать с «баланс после» предыдущего действия, пробегаться скриптом раз в сутки по всем действиям за сегодня и проверять их несложно, скорее всего так и делается.
Не просите ввести капчу, если вы уже убедились, что перед вами человек. Тут однако, надо быть осторожным, чтобы форму нельзя было использовать скриптом неограниченное число раз после однократного ввода капчи человеком.
Пример: форма регистрации. Если я где-то регистрируюсь, и забыл ввести поле «почтовый индекс», но правильно ввёл капчу — не надо показывать мне новую. Потратьте 10 минут на то, чтобы сохранить где-то у себя, что вот эту конкретную форму сейчас пытается заполнить живой человек. Ваши десять минут сэкономят многие часы человечеству.
А еще не очищайте поле ввода пароля. Два поля ввода пароля. Два поля ввода пароля с проверкой на JS их соответствия. Люто, бешено, ненавижу вбивать пароль по 4-10 раз, из-за кривой капчи, которую с первого раза не подберешь.
Вытаскиваем телефон из кармана жертвы и кладем в свой. Так несколько раз. В итоге имеем энное количество телефонов, каждый можно использовать, пока его не заблочат. Если заблочат — проблема не наша, а жертвы. Можно звонить бесплатно, пока не загребут копы. :)
Время Действие Баланс до: Стоимость: Баланс после:
11:30 Платеж в пункте платежей #N 0 -200 200
12:00 Оплата проезда в автобусе, маршрут N 200 27 173
12:30 Оплата проезда в метро, станция M. 200 28 172
Легко определить, что у всех действий «баланс до» должен совпадать с «баланс после» предыдущего действия, пробегаться скриптом раз в сутки по всем действиям за сегодня и проверять их несложно, скорее всего так и делается.
А еще не очищайте поле ввода пароля. Два поля ввода пароля. Два поля ввода пароля с проверкой на JS их соответствия. Люто, бешено, ненавижу вбивать пароль по 4-10 раз, из-за кривой капчи, которую с первого раза не подберешь.
Хотя впрочем, поторопился, нексус у меня держит полную зарядку три дня…