@rubylang

Страница 1664 из 1684
Александр
17.10.2018
21:20:18
зверюга вообще

https://twitter.com/shinh/status/1021437706935590914

тут в твите ссылка на решение

суровый тип, в гугле работал

Google
Александр
17.10.2018
21:22:02
и клал он на все эти разговоры

прототип решения на рубях наклепал

Eugene
17.10.2018
21:28:53
Новая версия сафарари.

Александр
17.10.2018
21:35:05
а что там с сафари?

есть issue?

Eugene
17.10.2018
21:40:31
https://www.engadget.com/2018/06/05/apple-safari-canvas-fingerprinting/

есть issue?
Короче у знакомого задача поддержка интернет магазина в сша, и чуваки пишут скрипты и отлавливать их по fingerprints невозможно если они юзают сафари.

Александр
17.10.2018
21:50:48
хммм, почитал, ну это не проблема с JWT

это помогает за пользователями следить жеж и всё

ааа, уяснил с ботами так борятся

Eugene
17.10.2018
21:52:22
хммм, почитал, ну это не проблема с JWT
Я мало работал с jwt, как я понимаю он же в куках находится?

Google
Александр
17.10.2018
21:52:43
нет, это токен типо encrypted cookie рельсовой

то есть тупо кусок данных закодированный

Eugene
17.10.2018
21:53:01
Ну вот.

Александр
17.10.2018
21:53:11
и его используют чтобы пользователя идентифицировать

Eugene
17.10.2018
21:53:16
Его просто копируют и вставляют в куку.

Александр
17.10.2018
21:53:19
а хранить его где угодно можно

ну можно и в куке в том числе

Eugene
17.10.2018
21:55:05
Короче. Ты заходишь один раз. Копируешь куку. И потом чтобы не логинишься подтягиваешься куку, опля ты авторизован. Остается фингер принт. Заходит какой то хедлесс хром с убунты 100 раз и нормальный чувак с таким же токеном например с винды такой то разрядности и версией оперы определенной.

И по этому ты определяешь банить его или нет.

Берешь хедлесс сафари и все.

Ты хуй поймешь машина это или нет.

До того как не поставишь рекапчу. Но рекапча не срабатывает если ты подтягиваешь после первого раза куку и больше не трогаешь форму логина и пароля для авторизации.

Amir
18.10.2018
02:14:11
Ребята помогите Что-то не могу понять у меня в контроллере есть before_action :set_plea, only: %i[show update edit] и свои методы экшены def upload def blank Роуты post 'tp/upload', to: 'tp#upload' get 'tp/lbank', to: 'tp#blank' resources :tp, only: %i[new show create edit] не могу понять когда вызываю в браузере /blank у меня там контроллере запускается мтеод set_plea, а ведь он должен только в методах %i[show update edit] запуститься

а все понял, апичатка была :) LBANK :D

Vasiliy
18.10.2018
04:47:59
Ты хуй поймешь машина это или нет.
Не, ну погоди, можно же там дернуть какой-нибудь размер окна или положение курсора

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

Nikita
18.10.2018
07:37:50
ребята, подскажите пожалуйста, есть приложение, оно висит на: domain.example/foo, то есть это рутовая точка, рельса пытается грузить ассеты из domain.example, а должна грузить из domain.example/foo, что-то не могу подходящее нагуглить, как рельсе сказать рутовую точку для отгрузки ассетов?

Vasiliy
18.10.2018
07:39:21
Как быстрое решение - посмотреть как работает ассет паф, как более замороченное - настроить в нгинксе

Или в конфиге это где то было

Nikita
18.10.2018
07:40:12
config.action_controller.asset_host я еще вот такую штуку нашел

Google
Nikita
18.10.2018
07:40:15
походу это то, что нужно?

Артур
18.10.2018
07:40:18
да

Nikita
18.10.2018
07:40:31
ок, щас затестим

Vasiliy
18.10.2018
07:40:54
Возможно, я сходу не вспомню

Artur
18.10.2018
07:42:26
config.action_controller.asset_host я еще вот такую штуку нашел
но он насколько помню только на домен загрузки влияет, возможно надо рерайтить нджинксом.

Artur
18.10.2018
07:43:12
:))

Nikita
18.10.2018
07:43:31
как через nginx сделать понятно

Vasiliy
18.10.2018
07:43:42
Рерайтить нгинксом кстати ок варик, на поддомен выносишь а потом туда можно и какой нить клоудфронт

Darth
18.10.2018
07:43:43
self.instance_variable_get("@#{attribute}")

def [](attribute) self.send(attribute) endВоот А есть какое-то другое решение, чтобы можно было вызывать только атрибуты? (Сейчас можно имя любого метода вызвать)

Darth
18.10.2018
07:43:43
какой-то способ сделать @attribute_name

Amir
18.10.2018
07:50:06
Ребята ПОМОГИТЕ Как обновить атрибуты не валидируя скажем пришла форма action UPDATE @mymodel = Mymodel.find(params[:id]) @mymodel.update(mymodel_params) как это делает @mymodel.save(validate: false)

Rustam
18.10.2018
07:52:05
update через save работает File activerecord/lib/active_record/base.rb, line 2665 def update_attributes(attributes) self.attributes = attributes save end

Vasiliy
18.10.2018
07:53:08
Update_columns есть посмотри в доке, там описаны методы которые Валидируют при сохранении и которые нет

Artem
18.10.2018
07:54:19
http://www.davidverhasselt.com/set-attributes-in-activerecord/

Александр
18.10.2018
08:04:25
Берешь хедлесс сафари и все.
ботов можно определять по признакам фреймворков для тестирования (PhantomJS и Selenium легко определить)

ну и вообще по количеству обращений к определённым ресурсам (поведение) можно выявлять, но это уже геморройно реализуемо

https://antoinevastel.com/bot%20detection/2017/08/05/detect-chrome-headless.html

Google
Александр
18.10.2018
08:07:22
в общем все эти беспрободные браузеры и фреймворки для тестирования (которые используют для парсинга) определяются без проблем

Александр
18.10.2018
08:08:48
ок, дай пример

Darth
18.10.2018
08:08:52
работаю в компании, которая промышляет скринскрэпингом, испульзуя ватир и прочие приблуды для этого всё обходится

Александр
18.10.2018
08:09:46
конечно те кто парсят всё обойдут рано или поздно, НО сколько сил и времени они потратят?

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

Darth
18.10.2018
08:10:23
ну зависит от мотивации )

Admin
ERROR: S client not available

Nikita
18.10.2018
08:11:53
по дефолту /

передаешь /foo

Darth
18.10.2018
08:11:56
очень хорошая защита от них это динамические айди и классы на html

Nikita
18.10.2018
08:11:59
и норм

Александр
18.10.2018
08:12:10
ватир через селениум работает

селениум палиться легко

Darth
18.10.2018
08:13:57
это слова

Александр
18.10.2018
08:14:23
http://edmundmartin.com/detecting-selenium/

Darth
18.10.2018
08:14:26
но пока ребята вроде ни с одним банком не имели проблем

Александр
18.10.2018
08:14:41
дык, может против них и не защищаются особо? =)

тут человек спросил как защищаться

Google
Александр
18.10.2018
08:20:20
если есть желание - можем поупражняться в определении селениумов и защите от них на практике

Amir
18.10.2018
08:20:56
update через save работает File activerecord/lib/active_record/base.rb, line 2665 def update_attributes(attributes) self.attributes = attributes save end
Сделал так @mymodel.attributes = mymodel_params @mymodel_attirbutes.save(validate: false) Все почти работает Кроме cascade_callbacks: true У меня MongoID, есть ембедет класс внутри embeds_one files, cascade_callbacks: true так вот сохранение в них не работает

Darth
18.10.2018
08:22:10
дык, может против них и не защищаются особо? =)
я не думаю, что ни один банк в мире не озаботился защитой от "ботов"

Александр
18.10.2018
08:23:01
100% защиты не может быть, иначе пострадают пользователи обычно делают достаточно сложную защиту, чтобы новички и обычные люди не долбились

а умных отсекают, если они начинают вредить (ресурсы жрать как минимум или данные грести которые им не нужно отдавать)

вот ещё есть интересные статьи

https://intoli.com/blog/making-chrome-headless-undetectable/ https://intoli.com/blog/not-possible-to-block-chrome-headless/

но тут тоже не всё учтено

браузеры отправляют заголовки разные

в разном порядке (!)

так что для усложнения парсинга есть много возможностей

я, кстати, в последний раз на паре сайтов защиту обошёл от парсинга (cloudflare точно проходит) тупо выставив useragent Googlebot-Image/1.0

Darth
18.10.2018
08:35:46
ну тем неменее пока ребята все банки что нужно было (почти всё, что есть в мире) осилили и постоянно обновляют разница только в сложности

но работа у них скучная и я рад, что этим не занимаюсь :)

Александр
18.10.2018
08:37:39
так что для атаки тоже есть интересные направления

Andiskiy
18.10.2018
08:39:18
добрый день. подскажите пожалуйста, в чем разница использования -> и lambda в скоупах? просто рубокоп просит юзать лямбду, если несколько строк. Было место где я юзал лямбду scope :name_scope, lambda do |params| #....some code endно в этом месте происходила утечка памяти. поэтому боюсь использовать лямбду. подскажите пожалуйста, может я чего-то не допонимаю.

Darth
18.10.2018
08:40:02
``delegate :[], :as_json, to: :data````as_json понятно, а как [] будет вызываться на инстансе класса у которого есть такой делегат?

-> и lambda вроде просто разный синтаксис

как с ключами в хешах

Vasiliy
18.10.2018
08:49:19

Страница 1664 из 1684