vk-bridge icon indicating copy to clipboard operation
vk-bridge copied to clipboard

Добавить какую либо подпись в VKWebAppShowNativeAds

Open danyarubtsov opened this issue 4 years ago • 13 comments

Мой кейс простой - при просмотре рекламы я шлю запрос на сервер, хотелось бы что бы появилась какая либо подпись для проверки на беке, условно связанная с секретным ключом сервиса.

Это поможет мне, и другим разработчикам защитить себя от "ненастоящих" запросов о просмотре рекламы, ведь на данный момент там приходит лишь result (boolean)

danyarubtsov avatar Oct 02 '20 17:10 danyarubtsov

Подумаем

mainsmirnov avatar Oct 02 '20 18:10 mainsmirnov

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

MyTowerSky avatar Oct 06 '20 16:10 MyTowerSky

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

Расскажите про этот проект и про конкретные примеры атак хакеров, как они эмитируют ненастоящие просмотры рекламы. Можно в личку ВК, если тут неудобно. @ub1x тоже интересно от вас узнать про «ненастоящие» запросы.

kuhel avatar Nov 25 '20 09:11 kuhel

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

Расскажите про этот проект и про конкретные примеры атак хакеров, как они эмитируют ненастоящие просмотры рекламы. Можно в личку ВК, если тут неудобно. @ub1x тоже интересно от вас узнать про «ненастоящие» запросы.

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

Было бы неплохо объеденить с этим ишью: https://github.com/VKCOM/vk-bridge/issues/193

danyarubtsov avatar Nov 25 '20 11:11 danyarubtsov

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

Расскажите про этот проект и про конкретные примеры атак хакеров, как они эмитируют ненастоящие просмотры рекламы. Можно в личку ВК, если тут неудобно. @ub1x тоже интересно от вас узнать про «ненастоящие» запросы.

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

Было бы неплохо объеденить с этим ишью: #193

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

kuhel avatar Nov 25 '20 14:11 kuhel

Есть новости?

KorDen0 avatar Feb 17 '21 00:02 KorDen0

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

Расскажите про этот проект и про конкретные примеры атак хакеров, как они эмитируют ненастоящие просмотры рекламы. Можно в личку ВК, если тут неудобно. @ub1x тоже интересно от вас узнать про «ненастоящие» запросы.

Ну после просмотра рекламы для выдачи награды юзеру я просто шлю ивент на сервер что реклама просмотрена, любой человек может просто отослать такой же ивент. Было бы неплохо объеденить с этим ишью: #193

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

Нет новостей? уже 3 месяц "следующего года", а даже на веб ничего не появилось

danyarubtsov avatar Mar 07 '21 09:03 danyarubtsov

Подпись возможно добавить только на стороне поставщика рекламы, это не весьма не просто. Чем вас не устраивает request_id, который сами можете генерировать для каждого просмотра рекламы и валидировать на сервере?

kuhel avatar Mar 15 '21 08:03 kuhel

Как вы предлагаете защищаться от фейк-просмотров за награду через request_id? Зачем поставщик рекламы, если мы уже договорились с Вами о добавлении метода генерации хеша? https://github.com/VKCOM/vk-bridge/issues/193

Вы ведь сами сказали "Попробуем в этом году сделать такое событие VK Bridge на вебе, на нативных клиентах уже только в начале следующего года сможет появиться такое событие"

danyarubtsov avatar Mar 15 '21 14:03 danyarubtsov

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

kuhel avatar Mar 16 '21 12:03 kuhel

Если мы делаем сервер-сайд генерацию подписи: человек обращается к нашему апи, ловит ключ и делает что хочет

если мы делаем бридж генерацию подписи: ему придется обращаться к апи вк(?не уверен), не имея нужных hash (?не уверен), потому-что если он захочет вызвать просто из консоли браузера - он хоть и получит кеш, но пока он его куда либо отправит уже пройдет больше 1-2 секунд, а это допустимый кд в условно моем коде, зависит от автора. Оптимизировать подмену подобного процесс рекламы уже будет сложнее чем просто словить ключ с сервера, но не стоит забывать что это несет пользу не только для рекламы, а и для сторонних идей. Вам это закодить - от силы сутки (не знаю как у Вас там все работает), а разработчикам это как-минимум ещё 1 фактор для помощи своим приложениям.

Стоит понимать, что другие рекламные площадки изначально продумывают подобные моменты, и выстраивают какие-либо апишки для проверок просмотра рекламы, но тут как всегда, поэтому я и минимум 10 людей обсуждающий данный тикет вот уже как 3 месяца в конфах технологии вконтакте будем очень признательны за реализацию столь несложной функциональности в бридже!

danyarubtsov avatar Mar 16 '21 19:03 danyarubtsov

То есть в хэше помимо секретного ключа нужен таймстемп еще, так?

kuhel avatar Mar 17 '21 10:03 kuhel

Я ведь в #193 объяснил все, продублирую: "было бы неплохо добавить метод, который генерирует хеш на основе времени и секретного ключа.

К примеру hash сделать склейкой секретного ключа + unixTime, а в ответ вернуть { hash , unixTime }"

danyarubtsov avatar Mar 17 '21 10:03 danyarubtsov

Спасибо за обращение, рассмотрели в команде платформы, пока не планируем реализовывать данный функционал.

Pronin-vk avatar Feb 09 '24 07:02 Pronin-vk