Pull to refresh

Comments 46

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

Возможно паранойя, но где гарантия что в один прекрасный момент эта статическая библиотека не отправит всю прошедшею через неё информацию куда то?
Наверное в том, что ее код представлен вот здесь и имеет объем пару сотен строчек кода?
Ну не пара сотен строчек. Там в OAuthConnection::connectToHost есть параметры которые в этом файле не описаны, то есть надо искать где лежит файл в котором они описаны. Потом искать не используются ли эти параметры где то еще. То есть наличие исходников конечно аргумент за, но проверить это все равно достаточно сложно.

Хочу просто чтобы быть понятным, я не пытаюсь сказать что эта библиотека — способ развода на пароль вконтакте. Но тут уже просто есть рефлекторное недоверие ко всему что просит пароль от вконтакте и если он где то запрашивается то почему это безопасно стоит отдельно и плотно расписывать.
Вы не поверите, но дока на эти самые параметры есть на vk.com, а в коде где параметры используются можно посмотреть через IDE.
Речь шла о «d->login» и «d->password» и о том что в этом файле класс d не описан. Описание этого класса надо искать на vk.com?

Через IDE — это вариант. Но динамика хорошая, пару сообщение назад было достаточно одного файла из пары сотен строчек, а сейчас уже надо по всему проекту пройтись в поисках.
«Класс d» — это класс OAuthConnectionPrivate и он там полностью описан.
Я понимаю что он где то описан. Речь шла о том что одного файла из пары сотен строчек не хватит что бы понять что пароль и логин ни куда не уходят.
Попробую доступнее: класс OAuthConnectionPrivate полностью определён в том файле, на который дана ссылка.
«Иногда лучше жевать, чем говорить» ©
Да уж, я бы на его месте извинился за то, что народ в заблуждение пытался ввести!
Это что за ололо комментарий? Мне хватило нескольких минут, чтобы убедиться в чистоте библиотеки.

А фраза «То есть наличие исходников конечно аргумент за» доставляет до глубины души. А без исходников ничего не надо было бы проверять?

Вы смотрите, а то ведь есть еще библиотеки boost, poco, фреймворк Qt и многое другое, жаждущее угнать Ваш пароль ВКонтакте. Ведь программисты-то все лошки, их проще всего надурить выложенным исходным кодом, из тысячи скачавших библиотеку ведь никто в код не посмотрит, в саппорт на проблему не напишет.
в чем ололо заключается?

>>Мне хватило нескольких минут, чтобы убедиться в чистоте библиотеки.
как? расскажите методику как вы незнакомую программу за пару минут просмотрели всю, если даже сам автор согласился что надо искать параметры через IDE?

>>boost, poco, фреймворк Qt
Они у меня не просят пароля от вконтакте или учетной записи Windows. К тому же это крупные проекты, которые уже исследованы на наличие уязвимостей.

>>А фраза «То есть наличие исходников конечно аргумент за» доставляет до глубины души.
Чем? Вы считаете что наличие исходников — это аргумент против?
как? расскажите методику как вы незнакомую программу за пару минут просмотрели всю, если даже сам автор согласился что надо искать параметры через IDE?

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

Вот код, который Вас так беспокоит:
void OAuthConnection::connectToHost(const QString &login, const QString &password)
{
    Q_D(OAuthConnection);
    if (d->options.value(Connection::KeepAuthData).toBool())
        d->loadAuthData();

    if (d->login != login || d->password != password) {
        if (!(d->login.isNull() || d->password.isNull()))
            d->clear();
        d->login = login;
        d->password = password;
    }
    if (!d->uid || d->accessToken.isNull()
            || (d->expiresIn && d->expiresIn < QDateTime::currentDateTime().toTime_t())) {
        d->requestToken();
        d->setConnectionState(Client::StateConnecting);
    } else
        d->setConnectionState(Client::StateOnline);
}


d — это экземпляр класса OAuthConnectionPrivate, который полностью описан и реализован в oauthconnection.cpp (т.е. входит в те самые 400 строк кода).
Я реально не вижу здесь проблемы для любого программиста.

Автор ни с чем не соглашался, он просто посоветовал использовать IDE для удобного перемещения по вызываемым функциям, раз в текстовом редакторе не получается. Там все лежит в двух файлах, один из которых хедер.

К тому же это крупные проекты, которые уже исследованы на наличие уязвимостей.

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

Чем? Вы считаете что наличие исходников — это аргумент против?

Это вырванная из контекста фраза. Полностью она звучала как-то так: «сложно разобраться, где какие параметры используются. Исходный код, конечно, дали, но сложно». А как еще-то? Автор должен был сказать: «зуб даю»? Или патриарху кадилом помахать?

Просто, видимо, я таких моментов не понимаю: автор выкладывает [i]исходный код[/i] отличного качества (т.е. имена переменных говорящие, что, куда и откуда явно указано и т.д.), а ему совсем ленивые хабролюди говорят: «а не спиздишь ли ты пароли, часом?», вместо того, чтобы за пару минут убедиться самому — нет, не спиздит.
А что мешает shared библиотеке поступить точно также? Это же всего лишь способ компоновки программы.
И как заметил автор ниже, код открыт же.
Если dll скачивается отдельно то (на сколько я знаю) из какого исходного текста она скомпилирована сказать сложно. Или её в виде апдейта можно заменить на другую.
Люди я думаю при желании и много чего более хитрого смогут придумать.
Кстати, напоминаю, что есть еще библиотека для работы с XMPP под названием Jreen
Собственно, в Кутиме следует ожидать нативной поддержки VK через API, угу?
EDIT: ушёл читать под кат сразу, не заметил ответа на вопрос в шапке. Тем не менее, в базовую поставку включать думаете?
Ставил на Wheezy из родного репозитория 0.3-шку. Не узрел.
То ли я в логике работы 0.3 ничего не понимаю, то ли её там нет.
Не слежу за пакетами для Дебиана, там может быть 0.3.1, которая еще не на vreen'е. На vreen только ветка в мастере переведена
Более того, есть библиотека Ireen, которая реализует протокол ICQ.
Красиво и емко написанная, очень удобная библиотека.
Попробовал, понравилось. Рекомендую :)

Gorthauer87, спасибо!
Отлично! Давно искал подобную библиотеку под Qt! Хм, а если запустить под Necessitas…
Попробуйте. Я честно сказать не пробовал, но должна заработать, вроде бы в cmake есть поддержка Necessitas. В Necessitas же есть QtWebkit? Если нету, то тогда придется колдовать с вызовом нативного браузера и доставанием у него каким-то образом токена, при условии, что в страничке авторизации можно редиректить после авторизации только на vk.com.
Узнал автора по первым двум строчкам поста.
Вы один из немногих людей, которые пишут о Qt на хабре.
Мне кажется меня проще по картинке распознать, она всегда будет справа от заголовка))
Добавил пример, который показывает список аудиозаписей текущего пользователя.
Спасибо, интересная штука! Все думал, чего бы такого написать на досуге на QML. Теперь появилась идея :)
Потом хотелось бы на результаты посмотреть :)
Обязательно поделюсь, вдруг кому пригодится :)
UFO just landed and posted this here
Будет конечно. А здесь какой-то cmake internal error. Какая версия cmake и какая версия остальных компонент?
UFO just landed and posted this here
А что за компилятор? Очень похоже на то, что он почему-то не работает корректно. И сейчас последняя версия Qt это 4.8.3. Кстати, в случае с Qt из состава Qt SDK под win, то он не годится. Там gcc 4.4, а он хоть и удовлетворяет минимальному требованию для vreen'а с точки зрения фич, но не с точки зрения багов. Есть несколько багов в компиляторе из Qt SDK, из за которых vreen просто не собирается.
Пути решения здесь два:
1. Поставить mingw-gcc-4.7 и собрать им Qt
2. Поставить Windows 7.1 SDK и собирать с помощью msvc2010
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Архив там автогенерированный и он не включает субмодулей. Поэтому в нем не хватает важных файлов. Поэтому же надо тянуть именно гитом и именно так, как описано в статье.
UFO just landed and posted this here
pkg-config это некая утилита, которая подставляет правильные флаги компилятору для подключения библиотек, к сожалению со студией она не совместима.
Да, при сборке cmake'ом надо еще указать префикс установки в Qt директорию -DCMAKE_INSTALL_PREFIX=%QTDIR% если это делать qt vs command prompt

А потом просто добавляем в переменную
LIBS=%QTDIR%/lib;%LIBS%
INCLUDEPATH=%QTDIR/include%;$INCLUDEPATH

ну и в pro файле по идеи тогда достаточно просто будет прописать
LIBS+= -lvreen
но тут я не уверен на все сто.
1. Круто, в избранное, однозначно
2. Откуда Кирга знаете?)
UFO just landed and posted this here
>Свободная LGPL лицензия, позволяющая использовать библиотеку с проприетарными приложениям.
Sign up to leave a comment.

Articles