реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> sim900 gprs отправка данных даёт ошибку
Ioann_II
сообщение Nov 4 2016, 06:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Здравствуйте, уважаемые коллеги.

Столкнулся вот с какой проблемой. Передавал данные на сайт AT командами HTML - запросов. Ранее всё получалось. Но вот пришлось переехать на другой сайт.
Теперь сайт в ответ выдаёт ошибку:

AT+HTTPREAD
+HTTPREAD:831
<html><body><script type="text/javascript" src="/aes.js" ></script><script>funct
ion toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))})
;return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].cons
tructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":""
)+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c
63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("2187
d224177377852ab2122167fc1b98");document.cookie="__test="+toHex(slowAES.decrypt(c
,2,a,cool.gif)+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://
ioann.96host.ru/1.htm?i=1";</script><noscript>This site requires Javascript to w
ork, please enable Javascript in your browser or use a browser with Javascript s
upport</noscript></body></html>
OK

Когда делаю то-же самое, но из браузера - ошибки нет.

Подскажите: как победить.

Спасибо.
Go to the top of the page
 
+Quote Post
Nixon
сообщение Nov 4 2016, 06:48
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Зачастую в запросе не хватает заголовков http. Иногда обязателен User-Agent например.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
Ioann_II
сообщение Nov 4 2016, 06:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Цитата(Nixon @ Nov 4 2016, 09:48) *
Зачастую в запросе не хватает заголовков http. Иногда обязателен User-Agent например.


Можно пример?
Спасибо.
Go to the top of the page
 
+Quote Post
Nixon
сообщение Nov 4 2016, 07:08
Сообщение #4


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Например формат GET запроса:
Код
GET <file>?<params>\r\n
User-Agent: Mozilla\r\n

Чтобы сервер не рвал соединение, для выполнения множественных запросов использую еще Connection: Keep-Alive
Как это сделать посредством AT+HTTPREAD не в курсе, поскольку делаю запросы http ручками.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
Ioann_II
сообщение Nov 4 2016, 07:16
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Сейчас попробовал по-быстренькому сформировать "ручками" запрос.
Запрос вышел такой (С++):

Send = "GET /data_s.php?login=0&password=0&driver=0FB09D501109&car=00001&container=3409DCB431&latitude=5375919&longtitude=8713598 HTTP/1.1\r\n";
Send+= "Host: ioann.96host.ru\r\n";
Send+= "Accept: text/html, application/xhtml+xml, */*\r\n";
Send+= "Accept-Language: ru-RU\r\n";
Send+= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; ASU2JS; rv:11.0) like Gecko\r\n";
Send+= "Connection: close\r\n";
Send+= "\r\n";
Response.Format("AT+CIPSEND=%d\r\n",Send.GetLength())

т.е. со всем заголовком....

ответ:

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 04 Nov 2016 07:05:01 GMT
Content-Type: text/html
Content-Length: 942
Connection: close
Vary: Accept-Encoding
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache

<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("c2ad64977b51386e0da81884f446376b");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,cool.gif)+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://ioann.96host.ru/data_s.php?login=0&password=0&driver=0FB09D501109&car=00001&container=3409DCB431&latitude=5375919&longtitude=8713598&i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
CLOSED


Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Nov 4 2016, 07:32
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Это разве ошибка? Это сообщение, что сайт желает запустить на клиенте жаба-скрипт(скрипт в тексте и судя по тексту это как-то связано с AES-криптографией) и у него это не получилось. Если-бы получилось, это сообщение просто-бы не успели заметить, что и происходит в браузере.
Go to the top of the page
 
+Quote Post
Ioann_II
сообщение Nov 4 2016, 09:20
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Что делать?

тут в теле упоминается похоже на кук:
document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,cool.gif)+";
expires=Thu, 31-Dec-37 23:55:55 GMT;

его надо как-то сделать? как?

Спасибо.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Nov 4 2016, 09:52
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(Ioann_II @ Nov 4 2016, 12:20) *
Что делать?

тут в теле упоминается похоже на кук:
document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,cool.gif)+";
expires=Thu, 31-Dec-37 23:55:55 GMT;

его надо как-то сделать? как?


Сделать интерпретатор Javascript ?

Собственно примерно код причесал до удобоваримого:
Код
<script type="text/javascript" src="/aes.js" >
</script>
<script>
function toNumbers(d)
{
    var e=[];
    d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});
return e
}
function toHex()
{
for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)
    e+=(16>d[f]?"0":"")+d[f].toString(16);
    return e.toLowerCase()
}
var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),
    b=toNumbers("98344c2eee86c3994890592585b49f80"),
    c=toNumbers("2187d224177377852ab2122167fc1b98");

    document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,B))+";expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";
    location.href="http://ioann.96host.ru/1.htm?i=1";
</script>

<noscript>This site requires Javascript to w
ork, please enable Javascript in your browser or use a browser with Javascript s
upport</noscript>


Шутка, конечно. Но проблема в том, что без JS любое изменение серверной части закончится плачевно для устройства. Отсюда в общем случае проще не связываться с подобными сайтами.

ЗЫ. Кука это как раз наименьшая проблема из имеющихся, потому как это просто сохраняемая/отдаваемая по запросу сервера информация хранимая у клиента.
Go to the top of the page
 
+Quote Post
Ioann_II
сообщение Nov 4 2016, 10:45
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



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


В яве не силён, увы..., да и в МК, наверное интерпретатор впихнуть не выйдет - даже расчёт AES занимает много места...

Но обратил внимание, что сайт каждый раз выдаёт один и тот-же скрипт. Может быть, конечно, завтра он станет несколько другой, например с другими числами...
Потому, хотелось бы:
1. понять что ожидает получить сервер - т.е. как оно выглядит на уровне байтов.
2. понять как это всё вычислить.
3. как правильно отправить эти данные - каким запросом.

Ну как-то так.

С сайтом пришлось связаться, т.к. для отладки ПО нужен php и mysql, а таких сайтов бесплатных оказалось мало и зарегистрироваться удаётся не на всех.

Сообщение отредактировал Ioann_II - Nov 4 2016, 10:50
Go to the top of the page
 
+Quote Post
Ioann_II
сообщение Nov 4 2016, 15:38
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Неужели никто не подскажет?

Сообщение отредактировал Ioann_II - Nov 4 2016, 15:38
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Nov 4 2016, 16:52
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Неужели никто не подскажет?

А ты че думаешь, тут сидят web-писатели?

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

В яве не силён, увы...


Ну дык Гугл в помощь и вперед изучать ЯвуСкрипт(обращаю внимание это не ява, а именно JS) хоть поверхностно. Как писал выше тут не web-дизайнеры собрались.

Примерно правильно представляешь. И раз заметил использование куки начни с этого:
https://ru.wikipedia.org/wiki/HTTP_cookie
Там есть подробная схема общения браузер-сервер.

Ну и судя по моим скудным познаниям в JS полученным еще 17 лет назад когда я еще и что такое Инет не представлял, эта страница делает запись в куке через указанные ключи и AES, потом вызывает http://ioann.96host.ru/1.htm?i=1 которой идет обращение уже с кукой которую только что записали. А там или нормальный ответ или еще один JS с почти аналогичным кодом и уже вызовом странички http://ioann.96host.ru/1.htm?i=2 .
Странички все динамически создаваемые на сервере поэтому будет ли запрос http://ioann.96host.ru/1.htm?i=2 при правильной записи в куке - не знаю.



Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01448 секунд с 7
ELECTRONIX ©2004-2016