Sergey
Ну в общем и целом - да
Не спасет без certificate pinning
Sergey
Почему?
Я могу ошибаться, но пининг как раз спасет от подмены и mitm
Mike
Я могу ошибаться, но пининг как раз спасет от подмены и mitm
чтобы подменить, нужно иметь валидный сертификат от чужого сайта, не?
Sergey
чтобы подменить, нужно иметь валидный сертификат от чужого сайта, не?
Подменяешь dns сервера или просто ответы, меняешь адрес хоста и там другой сертификат и проксируешь
Sergey
Пин спасет, поскольку ты знаешь что сертификат хоть и валидный, но не твой
Mike
Именно в ответе
Именно что в ответе? Пока не понял...
Sergey
А запись в ответе
Mike
Другой ip
но доменное имя-то остаётся, а сертификата у тебя нет
Sergey
но доменное имя-то остаётся, а сертификата у тебя нет
Блин, да. Но точно можно встрять с mitm без пининга
Sergey
Sergey
но доменное имя-то остаётся, а сертификата у тебя нет
Если мы подменили ip хоста, то можно и удостоверяющий центр для атакуемого сертификата подменить
Денис
Привет всем, нужна помощь, уже 2 дня бьюсь с ошибкой Делаю фото, сохраняю на устройстве, получаю путь к файлу, декодирую его в строку так: ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] imageBytes = baos.toByteArray(); String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); Засовываю encodedImage в JSONObject, превращаю всё это в строку, отправляю через OkHTTP вот так: OkHttpClient client = new OkHttpClient(); RequestBody body = new FormBody.Builder() .add("req", str) .build(); Request request = new Request.Builder() .url("myServlet") .header("Content-Type", "application/x-www-form-urlencoded; charset=utf-8") .post(body) .build(); Response response = client.newCall(request).execute() И вот тут вылетает Exception: java.net.SocketException: sendto failed: EPIPE (Broken pipe) Причем до этого делал всё так же только вместо полного фото получал thumbnail и всё нормально отправлялось, может ли это юыть из-за размера?
Sergey
но доменное имя-то остаётся, а сертификата у тебя нет
Зайди с другой стороны - зачем пининг, если mitm не возможен?
Askar
задачка со звёздочкой: есть активити с вебвью, пытаюсь загрузать webView.loadUrl("http://95.57.220.2:8080/bus/#/app/map"); если пройти по ссылке в мобильном хроме/на компе, то там откроется карта
Mike
Зайди с другой стороны - зачем пининг, если mitm не возможен?
Ну не. Есть много глупостей, для существования которых нет причиню
Askar
а в аппе появляется анимированный бус с мороженным - что за херня?))
Mike
Окей, зачем тогда нам cert pinning?
Так я и спрашиваю об этом :)
Sergey
Так я и спрашиваю об этом :)
Нужен для сужения поля mitm А как атаковать, к сожалению я не мастер PS надо канал pentester'ов поискать :)
Askar
OSM используешь?
карта похожа на OSM, сайт не мой. а там такое есть?
Денис
Просто интересно стало почему не использует osmdroid вместо webview
Askar
Просто интересно стало почему не использует osmdroid вместо webview
мопед не мой) я уж обрадовался, думал объяснение какое-то)
Askar
да
Askar
канеш) другие урлы норм грузятся. без JS автобуса как на картинке нет)
Денис
https://stackoverflow.com/a/14624314/3050249
Еще б понять что тут написано, читал уже, а почему пир закрывается то во время отправки? Получается проблема всё таки в размере? Может тогда мультипартом попробовать отправить?
Денис
Проблема на сервере. Надо не пробовать и не гадать, а знать чётко, что слать ему.
Так я и знаю, почему проблема тогда проподает если не слать фото либо слать фото маленького размера
Денис
потому что на сервере ограничен размер тела запроса?
Тоже думал, получается maxPostSize нужно указывать на самом сервере а не в сервлете?
Денис
а сервлет — не часть сервера?
Часть, но на сервере очень много сервлетов да и доступа конкретно у меня нет к серверу, как можно тогда его прописать?
Mike
А мультипарт меня не спасет?
мультипарт — тоже POST, данные в нём — тоже body
Mike
Понял, спасибо
by the way, base64 увеличивает размер картинки процентов на 30
Денис
А как вообще правильно отправлять фото с андроида на сервер?
Mike
А как вообще правильно отправлять фото с андроида на сервер?
Есть по HTTP, то POSTом, но никак не в JSON и Base64.
Денис
Есть по HTTP, то POSTом, но никак не в JSON и Base64.
А само фото как компоновать? в массив байтов?
Mike
А само фото как компоновать? в массив байтов?
да, как есть, ничего с ним не делать
Денис
да, как есть, ничего с ним не делать
Или можно прям битмапом?
Mike
Или можно прям битмапом?
Единственный способ записать Bitmap в OutputStream — записать его в массив байт.
Dmitry
Кто сталкивался с Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.pom'. > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.pom'. > dl.google.com:443 failed to respond С недавнего времени, видимо из за блокировок. Прокси не помагает. Это при начальной синхронизации проекта
Anonymous
И не кодируй в Base64 - по спеке http пост это и так base64
Mike
И не кодируй в Base64 - по спеке http пост это и так base64
> по спеке http пост это и так base64 что? (нет)
Anonymous
А то что ты делаешь - это raw постинг, если сервер ожидает обычный мультипарт аплоад - он его просто не разжует
Askar
добавил метод в webViewClient @Override public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } и до упарывания дебажил и смотрел подозрительные урлы, которые грузятся. один из них -- http://95.57.220.2:8080/bus/img/bus.gif 😄 хз почему вебвью именно его отображает
Arsen
ты получил базу но не выбрал таблцу мб?
Anonymous
Но мультипарт ему точно нужен
Anonymous
В том, что стоит погуглить, как правильно воткнуть готовую базу в приложение.
Anonymous
почему, зачем?
Потому что у него сервер ждет мультипарта, понимал бы raw post отдал бы ошибку 413, а так он у него в лоб соединение закрывает
Anonymous
Больше на ум ничео не приходит. Да и не любят движки raw - посты, их очень трудно роутить
Roman
Есть такой кейс: хочу сделать extensions функцию для try catch (catchAll) и вынести ее в файл Extensions.kt. В catch'e есть TAG для логирования. Можно как-то в поле TAG взять имя файла/класса, в котором вызвалась функция catchAll?
Корбен
в чем ошибка
Mike
в чем ошибка
предупреждение
Anonymous
почему? они же на определённый урл делаются
В случае с мультипартом сборку файла на себя берет http-сервер (не фрэймворк), потому что он после первого чанка знает что за метод вызван, а в случае с raw - пока весь пэйлоад не примется - никто ничего не знает и метод выделять нужно на уровне фрэймворка из здоровущего шматка. Так же если при загрузке произошла ошибка - http сервер просто закрывает соединение. Поэтому у большинства http серваков есть два параметра max payload size и max post size, первый ограничивает общий размер запроса, а второй ограничивает размеры того, что из этого запроса удалось вычленить. Как то так. Возможно малость сумбурно
Влад
Ребята-котята, что скажете о курсах от гикбрейнс по андроиду? Там есть от майлсру за 15к/мес и от самих гиков за 9к/мес, оба на полгода. Кто-нибудь проходил? Стоит оно того? Или всё то же самое можно и в более сжатые сроки изучить? (а то там по 1-2 занятию в неделю, это как-то несерьёзно что ли) *мимо заканчиваю универ, но думаю послать специальность нахуй и вкатиться в погромирование*
Anonymous
И фрагментацией
Anonymous
Он на http уровне на чанки порезан
Anonymous
фрагменты то бишь