15.04.2018, 06:01
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
Небольшое дополнение к безопасности приложения (теория)
Коллеги, доброго времени суток. Вопрос чисто теоретический.
Существует несколько способов защиты приложения от иньекций, csrf, xss и так далее. И по сути 100% защиты не один не гарантирует. Покуда есть вопрос как определить реального пользователя от бота, а потом бота поисковиков от редисок)))).
От сюда вопрос, может кто задумывался, если в дополнение к события например клик (отправка формы и тыц на кнопку для чего либо) проверять focus, mouseover, потому что что бы нажать на button необходимо навести курсор мыши (если она есть), или как вариант при загрузке страницы сразу проверить mousemove и отправить на сервер какую-нибудь метку, типа пользователь реальный.
для touch событий наверное аналогичное решение.
Возможна генерация событий.
типа if (!event) return 'До свидания'; или как то еще
Буду рад любым комментариям по делу. Может кто-нибудь озадачивался вопросом. Заранее благодарю.
Последний раз редактировалось Роман Андреевич, 15.04.2018 в 06:03.
|
|
15.04.2018, 09:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
Роман Андреевич,
Цитата:
|
Как отличить реальное нажатие от скриптового?
|
event.isTrusted
|
|
15.04.2018, 14:40
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
рони,
Это понятно, но istrusted не все браузеры поддерживают и мысль такая что если нужно нажать на кнопку на неё нужно сначала курсор навести и так далее, так сказать универсальное решение пусть костыль даже но тем не менее, хоть немного определить реального человека от бота
|
|
15.04.2018, 17:30
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
И ещё один вопрос, видят ли боты код сгенерированный JavaScript ом?????
Или они только читают исходный код страницы?????
|
|
15.04.2018, 23:09
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Роман Андреевич,
бот может не только событие клик совершать но и mouseover.
что за приложение пишите?
|
|
16.04.2018, 04:46
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
j0hnik,
Пишу приложение для управления торговым процессом компании, там же и управление интернет магазином, встал вопрос как отделить реального пользователя от бота. Хотя бы как то косвенно.
Основная идея, как и писал выше была, но действительно бот может подделать все что угодно, включая user agent и так далее.
Остается видимо один вариант, садить админа и отслеживать подозрительную активность. Дальше все что приходит чистить, удалять теги и вредоносные выражения, а после если что остается отправлять на сервер. Сессию делать минут на 30 - 20 простоя. И проверять на регулярные выражения какие-то входные данные
По сути даже и токены не помогают, если страницу просканировать, например file_get_contents() - самое простое что пришло в голову, то вытащим все токены и так же отправим их на сервер, а сервер их примет и скажет что все ок.
Последний раз редактировалось Роман Андреевич, 16.04.2018 в 04:59.
|
|
16.04.2018, 04:52
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
Остается вопрос, видит ли бот, код сгенерированный JavaScript'ом????? Т.е. если я вывожу статичный контент, а кнопки для отправки данных каких то, генерирую скриптом. По сути если посмотреть исходный код, страницы там кнопочек то не видно, только в отладчике.
|
|
16.04.2018, 04:55
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
По сути, с какой-то стороны если посмотреть))))) Выполнение сценариев JS это программа, единственное код можно подсмотреть, если не сжатый он. И от сюда, контент то получается динамический при каких то условиях. А бот не может провести регистрацию или авторизацию, потому что нужно сделать ряд действий.
|
|
16.04.2018, 04:59
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Видит, будет запускаться по загрузке документа или всех ресурсов.
|
|
16.04.2018, 05:00
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от Роман Андреевич
|
код можно подсмотреть, если не сжатый он
|
еще одно заблуждение
|
|
|
|