POST запрос

Ответить
Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

POST запрос

Сообщение Tumbermory » 19 янв 2015, 04:43

Доброго времени суток, помогите пожалуйста. Ситуация такая. После авторизации на сайте появляется необходимая информация которую я хочу спарсить чем либо. Я отправляю POST запрос на авторизацию а возвращается html с ошибкой.
Вопрос 1: Почему возвращается такой html?
Вопрос 2: Не совсем понимаю что вообще должно вернутся, куки?
Вопрос 3: Как с помощью того что вернется мне быть авторизированным и получить необходимую информацию со страницы?
Заранее спасибо, тема новая, разбираюсь плохо :(

form со страницы:

Код: Выделить всё

<form action="" method="post" name="auth">
			<input type="hidden" name="redirect" value="/main.html">
				<div border="0" align="left">
					<p>Логин:</p>
					<div class="login_field"><input style="width:300px; height: 25px;" type="text" name="oper_user" id="oper_user" maxlength="30"></div>
                             <script type="text/javascript">
                                 $(document).ready(function(){
                                $(':text').keyboardLayout();
						});
						</script>
					<p>Пароль:</p>
					<div class="login_field"><input style="width: 300px; height: 25px" type="password" name="passwd" maxlength="32"></div>
						<script type="text/javascript">
                            $(document).ready(function(){
						$(':password').keyboardLayout();
						});
						</script>





                <br>
				<a href="/forgetpass.html">Забыли пароль?</a>
				<br><br>	
				<div class="center"><input type="submit" style="display:inline" class="btn" value="Войти">
				</div>
			</div>
			</form>
Код запроса:

Код: Выделить всё

HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("https://issa.beltelecom.by/main.html");

            try {
                // определяешь элементы массива POST
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("oper_user", "**********"));
                nameValuePairs.add(new BasicNameValuePair("passwd", "*******"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // выполняешь POST-запрос
                HttpResponse response = httpclient.execute(httppost);
                String s = EntityUtils.toString(response.getEntity());
                Log.d("My", s);
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
Вот содержание String s:

Код: Выделить всё

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>403 Forbidden</title>
    </head><body>
    <h1>Forbidden</h1>
    <p>You don't have permission to access /main.html
    on this server.</p>
    </body></html>

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 12:24

ахаха
вы в этом телекоме не работаете, я так поняла
так просто там не авторизуешься))
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

Re: POST запрос

Сообщение Tumbermory » 19 янв 2015, 13:35

Foenix писал(а):ахаха
вы в этом телекоме не работаете, я так поняла
так просто там не авторизуешься))
Вы бы лучше объяснили чем смеятся, я же говорю, тема новая. Почему нельзя авторизироватся? По средством браузера можно, а так нельзя? Или нужно использовать не POST запрос?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 13:58

потому что если бы так все авторизовывались..
И как я бы могла объяснить - если я не понимаю что именно вы хотите?

в общем - видите там замочек такой в адресной строке?
Так просто там не авторизоваться. для этого нужен API, правила авторизации и прочее, прочее, прочее. Если этого всего у вас нет (или вы там не работаете) то думаю, что это невозможно. Сервер просто вас не пустит туда.
Можете почитать, к примеру, про авторизацию у гугла.. там песня целая с получением токенов и прочее прочее
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

Re: POST запрос

Сообщение Tumbermory » 19 янв 2015, 14:45

Foenix писал(а):потому что если бы так все авторизовывались..
И как я бы могла объяснить - если я не понимаю что именно вы хотите?

в общем - видите там замочек такой в адресной строке?
Так просто там не авторизоваться. для этого нужен API, правила авторизации и прочее, прочее, прочее. Если этого всего у вас нет (или вы там не работаете) то думаю, что это невозможно. Сервер просто вас не пустит туда.
Можете почитать, к примеру, про авторизацию у гугла.. там песня целая с получением токенов и прочее прочее
Простите, может я не был точен в вопросе, через эту форму логинятся все пользователи и после этого попадают в личный кабинет.
То есть если на пальцах - так же как в браузере я логинюсь на сайте и имею доступ к ЛК, хочу залогинится через пост запрос и распарсить страницу личного кабинета, поправьте меня если я запутался

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 14:54

я вижу, что все логинятся, но и в гугл, и в майл-ру и вк - все "логинятся"
вот, почитайте как это делает ВК
http://vk.com/dev/auth_mobile
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

Re: POST запрос

Сообщение Tumbermory » 19 янв 2015, 15:14

Foenix писал(а):я вижу, что все логинятся, но и в гугл, и в майл-ру и вк - все "логинятся"
вот, почитайте как это делает ВК
http://vk.com/dev/auth_mobile
И на том спасибо, буду искать..

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 15:16

а что искать? или есть там API или нет. Если нет - то не войдете никак из приложения. Для приложений выдается еще ключ отдельный - чтоб сервер понимал, для доп. защиты кто авторизуется с какого приложения.
Для этого все это и задумано - чтоб нельзя было так просто все делать :)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: POST запрос

Сообщение Mikhail_dev » 19 янв 2015, 15:29

Авторизоваться можно, и скорее всего POST запросом и делается. Возьмите какой-нибудь сниффер пакетов, посмотрите куда уходит POST запрос и посмотрите что туда передаётся в параметры. В хроме - консоль разработчика, она уже как сниффер, можно видеть что за пакеты и куда ушли.

Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

Re: POST запрос

Сообщение Tumbermory » 19 янв 2015, 15:32

Foenix писал(а):а что искать? или есть там API или нет. Если нет - то не войдете никак из приложения. Для приложений выдается еще ключ отдельный - чтоб сервер понимал, для доп. защиты кто авторизуется с какого приложения.
Для этого все это и задумано - чтоб нельзя было так просто все делать :)
Спасибо, я просто задумался о том, что браузер тоже по факту приложение, ну да ладно :D

Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

Re: POST запрос

Сообщение Tumbermory » 19 янв 2015, 15:37

Mikhail_dev писал(а):Авторизоваться можно, и скорее всего POST запросом и делается. Возьмите какой-нибудь сниффер пакетов, посмотрите куда уходит POST запрос и посмотрите что туда передаётся в параметры. В хроме - консоль разработчика, она уже как сниффер, можно видеть что за пакеты и куда ушли.
Я в принципе через хромовую панель структуру и смотрел, но как отловить ей обмен пакетами чет не смекаю

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: POST запрос

Сообщение Mikhail_dev » 19 янв 2015, 16:44

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

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 16:58

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

Хотя, если вы надеетесь на огромную ДЫРУ в этом потрале..)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: POST запрос

Сообщение Mikhail_dev » 19 янв 2015, 17:44

Через какой браузер? Делается обычный POST запрос с необходимыми параметрами. Он возвращает скорее всего кукисы
Получается так можно любому - взять и попросить пользователя ввести логин с паролем в программу и цапнуть их, затем ввести в браузере и делай ты с аккаунтом что хочешь?
Интересно, а если юзер вводит в программу логин и пароль, то чего жаловаться если программа начала использовать его данные в других целях?
Хотя, если вы надеетесь на огромную ДЫРУ в этом потрале..)
И в чем дыра тут будет? Что авторизация происходит посредством программы? ничего дырного тут не вижу

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 18:09

для этогг и делают авторизацию, чтоб другие проги не могли этого делать)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Tumbermory
Сообщения: 19
Зарегистрирован: 30 янв 2014, 11:16

Re: POST запрос

Сообщение Tumbermory » 19 янв 2015, 19:52

Foenix писал(а):для этогг и делают авторизацию, чтоб другие проги не могли этого делать)
А какая принципиальная разница между любым сторонним браузером и приложением?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: POST запрос

Сообщение Foenix » 19 янв 2015, 20:27

я думаю что почти никакой, факт - откуда идет запрос. Со странички самого предприятия, где нету зловредного кода, или с другой странички - тоже не даст зайти.
А так вы сделаете прогу по подбору паролей, или любой может сделать прогу для доступа к банку, забрав себе все пароли. Такое низя делать)
Т.е. можно делать - к незащищенным сайтам. А не к таким, как у вас.
Вообще я в тонкостях веба не разбираюсь, если честно, поэтому не могу точно ответить на данный вопрос.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: POST запрос

Сообщение Mikhail_dev » 19 янв 2015, 22:03

для этогг и делают авторизацию, чтоб другие проги не могли этого делать)
до официального приложения хабра, было немало кастомных, которые юзеры делали сами, с авторизацией и прочим. И да, без API
я думаю что почти никакой, факт - откуда идет запрос. Со странички самого предприятия, где нету зловредного кода, или с другой странички - тоже не даст зайти.
Нету разницы откуда идёт запрос. Сервер не может знать что это вообще. он только знает, что ему пришел пост запрос, хоть с браузера, хоть с холодильника. Серьёзно, есть уже холодильники и микроволновки с андроидом, можно и там авторизацию сделать.
А так вы сделаете прогу по подбору паролей, или любой может сделать прогу для доступа к банку, забрав себе все пароли.
Сервер заблокирует тебя с большой долей вероятности, если POST запросов придёт слишком много, во-вторых капчу никто не отменял, в третьих - брутфорс будет идти очень долго, ибо это не локальный подбор пароля.
А так вообще да, можно сбрутить пароль и многие это делали и делают. Я лет так 10 назад и аську брутил, и почтовые ящики. Брутил через программу, написанную на делфи, которая не залазит в браузер, а сразу шлет пакеты с целью залогиниться.

Ответить