Использование Ruby Script для входа в систему - PullRequest
0 голосов
/ 12 марта 2019

Моя цель - использовать скрипт ruby ​​для входа в систему.Веб-сайт использует JavaScript для отображения формы входа, поэтому я не могу использовать механизацию.Я хочу избежать использования селена,

Если бы я вошел в систему с ложными данными, я вижу в разделе сети, что URL действия выполняется -> URL запроса: https://www.example.com/admin/bocontroller/bocontroller.cfm?action=dologin

дальше я вижу данные формы -> имя пользователя: пример пароля: 12345678

На основании этого я попытался написать несколько сценариев (это, как я надеюсь, ближе всего) ...

require "net/http"
require "uri"

uri = URI.parse("https://www.eample.com/admin/bocontroller/bocontroller.cfm?action=dologin")


http = Net::HTTP.new(uri.host, uri.port)

request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({'username' => 'Sample', 'password' => '12345678'})

request["Content-Type"] = "application/json"

response = http.request(request)

К сожалению, мой сценарий просто перестает работать ... и я немного потерян.Кто-нибудь может дать мне несколько советов, чтобы привести меня в правильном направлении?Это правильный подход?

1 Ответ

1 голос
/ 13 марта 2019

Поскольку это, похоже, получило некоторую популярность в качестве комментария, я решил переместить его в ответ.

Есть большая вероятность, что это будет тайм-аут, чтобы предотвратить атаки CSRF. Вот ссылка на документы Rails, объясняющая это: https://guides.rubyonrails.org/security.html#csrf-countermeasures.

В двух словах, сайты будут отправлять (и требовать) токен аутентификации вместе с любым потенциально преобразующим запросом (POST, PUT, DELETE и т. Д.), Чтобы запретить людям отправлять такие запросы из вне домена - как вы делаете.

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

...