Aga
в Expo такое есть
Aga
Если в Projects зайти и свайпнуть вниз
不退転」
scrollview/flatlist + refreshControl
Preeternal
оно и всегда будет.
Да работает. Спасибо. Немного теперь медленнее все грузится. Показываю контент после InteractionManager.runAfterInteractions. Надо будет подумать как оптимизировать загрузку (по частям).
Aga
scrollview/flatlist + refreshControl
https://riptutorial.com/react-native/example/22714/refresh-control-with-listview-full-example
Aga
спасибо за наводку
Aga
Исходник вскрыть возможно?
Aga
Если допустим хранить ключ, могут потом вскрыть и найти его?
不退転」
Если допустим хранить ключ, могут потом вскрыть и найти его?
в теории на андроиде да. Но зависит от того как хранить его
Aga
в теории на андроиде да. Но зависит от того как хранить его
Думаю просто как от левых запросов защитится, ни авторизации, ничего нет
Aga
Типа анонимного опроса в приложении, бек на express'e
Aga
По минимуму надо бы защитится, думаю ключ ввести
不退転」
вопрос скорее в том, нужно ли будет кому-то реверсить ваше приложение?
Aga
вопрос скорее в том, нужно ли будет кому-то реверсить ваше приложение?
Да, хотелось бы избавится от таких возможностей
Aga
да и слишком просто будет это сделать
不退転」
Да, хотелось бы избавится от таких возможностей
можно хранить ключ в keychain'e (https://github.com/oblador/react-native-keychain), на старте приложения выдергивать его в стор и потом ссылаться, либо перед каждым запросом доставать из чейна
不退転」
не юзал эту либу, но вроде-как много кто юзает для хранения чувствительных данных
不退転」
там в принципе сразу в ридми примеры написаны
Dmitry
По минимуму надо бы защитится, думаю ключ ввести
чего конкретно боитесь? DDoS, неавторизованный доступ, накрутка результатов в опросе?
Aga
вброс левых результатов, серьёзно повлияет
Dmitry
если я запущу 100 тредов с эмуляторами, которые будут запускать ваше приложение с разными device id и голосовать где надо, я смогу накрутить результаты?
Dmitry
если да, то нет смысла сильно заморачиваться, логируйте айпишник и device id, чтобы отсечь самых ленивых накрутчиков
Dmitry
можете впилить простейший PoW-алгоритм, чтобы накрутка требовала небольших мощностей при голосовании, но тогда батарейку юзерам убьёте
Dmitry
единственный способ защититься от накруток — регистрация (через google, телефон и т.д.)
Aga
и моя цель - максимально её усложнить
Aga
в принципе если ввести секретный код для запроса, это прилично так усложнит
Aga
Хочу избежать взлома от школьников, вот в чём цель)
Dmitry
Речь идёт о сложности накрутки
в моей практике самый эффективный способ бороться с накрутками — это не защищаться никак, а потом с помощью фильтров отсекать накрутчиков
Dmitry
школьник перехватывает урл в приложении, пробует проголосовать — получается, он голосует ещё 1000 раз, всё работает, школьник счастлив
Dmitry
потом простейшим фильтром его голоса не учитываются
Aga
потом простейшим фильтром его голоса не учитываются
типа лимит голосов с одного айпишника?
Dmitry
с одного айпишника, с одного device id
Eldar
Каким образом можно через стейт передать во вью стиль? this.state = { style: styles.redBG } <View style={{style}}> ?
Dmitry
типа лимит голосов с одного айпишника?
можно слать из интерфейса события статистики типа логина, нажатия на кнопки и т.п., к ним прикладывать device id, и так фильтровать тех, кто подделывает device id, но не парится с эмуляторами
Dmitry
Сервак видит device id?
если параметром передать
Aga
если параметром передать
хмм, вполне возможно
Aga
секретный ключ думаю тоже стоит реализовать, лишним не будет точно
Dmitry
важно понимать, что это немного усложняет работу накрутчикам, но полагаться на такие способы нельзя
Dmitry
см.пример с эмулятором
Aga
что за секретный ключ?
Типа набор символов, который индентифицирует приложение
Dmitry
ну если плевать на пользователей, то можно PoW добавить, как я уже говорил https://github.com/indutny/proof-of-work
Aga
чтобы левые запросы на сервак не шли, а только с ключём
Aga
Но желательно конечно не плевать на пользователей)
Dmitry
А если в кратце, чем он занимается?
сервер присылает nonce, клиент должен сгенерить хэш, значительно потратив на это ресурсы CPU; потом сервер быстро проверяет, что хэш правильно сгенерирован
Dmitry
сервер тратит незначительную долю того, что делает клиент
Dmitry
например, клиенту работы на 5 секунд, а серверу на 5 мс
Aga
Для начала сделаю по лайту, ближе к продакшну решу этот вопрос
Dmitry
Зачем изобретать велосипед, если есть deviceid ?)
Aga
интересные школьники)
и ломают пентагон с калькулятора, на уроке математики
Aga
вбил левый, а я не проверю
Dmitry
вопрос для чего
Dmitry
и ломают пентагон с калькулятора, на уроке математики
не скажу насчёт школьников, но на первом курсе мы с другом расшифровывали в RAM по ключу тоже из RAM приложение на экзотическом Tcl
Dmitry
по слухам сейчас школьники ещё более острозубые
Aga
по слухам сейчас школьники ещё более острозубые
школьники сейчас врядли разумные
Dmitry
ну вы же понимаете, что это не к RN вопрос и даже не мобильным приложениями?)
Dmitry
мне кажется, что для голосования сейчас повсеместно внедряют блокчейн и он хорошо себя показывает, ну а дальше это уже вопрос реализации =)
Dmitry
Use of undeclared identifier 'FIRAnalyticsConfiguration' не получается победить, хотя библиотека залинкована в Xcode
Dmitry
решилось заменой pod 'Firebase/Core’ на pod 'Firebase/Core', '~> 4.13.0’
Preeternal
При повороте экрана туда сюда - всё плывёт в react-navigation 3, если по скринам ходить. Оно не перерисовывает )
Kto?
У меня на рнав 3 тоже бред полный
Kto?
Думаю назад откатываться до 2й
Preeternal
Отключай )))
Нафига тогда я выделывался с резиновым дизайном) Раньше всё работало даже при ссмене языка. Теперь если на 1 букву после перевода титл в хеадер длиннее - оно не влазит
Kto?
Попробуй на вторую вернуться
Kto?
Должно помочь