Есть ли какие-то библиотеки для доступа к MySQL-серверу через PHP-мост?
Хочется написать client-side приложение, работающее с данными, расположенными в БД MySQL на shared PHP хостинге и при этом не заморачиваться с написанием web-сервисв на PHP, а обращаться прямо к базе SLQ-запросами с клиента.
Множество desktop-приложений для администрирования MySQL-баз предлагают подключение через PHP-мост (забрасываешь на хостинг PHP-файлик, прописываешь на клиенте URL и коннектишься к нему).
Есть ли такие решения, идущие в комплекте с клиентской библиотекой?
Ну, можно и как-то так, конечно, но я имел ввиду чтобы на клиентской стороне создавался полноценный объект-конекшн с соответствующим интерфейсом, который можно скормить коду, использующему обычный драйвер.
Philipp: что не так? Ключ случайный, если подберут - всему хана, соед-е - по https, подслушать ключ не получится. Если мало, можно прицепить защиту от брута и аутентификацию по протоколу oath.
@KOLANICH: вы про MITM аттаки слышали? Скачивается приложение, проксируется запрос и готово.
Мне идея совсем не нравится, т.к. наличие прослойки существенно снижает производительность и увеличивает время отклика на действие. Плюс, ввиду принципиальной ненадежности shared хостингов, это повлечет общую заторможенность и ненадежность системы.
Я бы мог порекомендовать только сокетное соединение через SSH-туннель.
> Скачивается приложение, проксируется запрос и готово.
????? Я лично тут не вижу mitm, кроме как если внести сертификат сервера в доверенные:
канал защищён https, чтобы сделать mitm понадобится выпустить фальшивый сертификат. Не говорю, что это невозможно, для правительств, корпораций и особо крутых взломщиков это возможно.
Теперь по остальным пунктам. Если у чувака нет возможности открыть для себя соединение к серверу баз со своего компа, то у него скорее всего нет возможности и по ssh подрубиться. То что производительность будет говно - не спорю, самому доводилось в этом убедиться (каждое действие занимало около секунды). Там правда были хитрые скрипты через сокеты (не я писал эту программу), возможно, что если бы там было реализован мой вариант (приведённый выше), было бы быстрее.
@KOLANICH: вы ключ передаете методом POST. Для перехвата таких вещей достаточно mitmproxy.org Здесь нет никакой крутизны.
Просто вы немного недооцениваете, насколько просто это взломать. Отсюда даете неправильные советы.
С учетом цен на VPS подобные вопросы просто лишены смысла. Тот же fastvps предлагает очень дешевые тарифы EVO.
Прочитайте mitmproxy.org/doc/howmitmproxy.html .
>Our answer to this conundrum is to become a trusted Certificate Authority ourselves.
Вот-это не всегда возможно. Для этого нужен либо доступ к вашему компу с нужными привелегиями (в фф элементарно добавить), либо доступ к приватному ключу уже установленного корневого сертификата (для этого надо быть либо цс, либо его взломавшим, либо спецслужбой или крупным денежным мешком). Либо можно провести деградацию до http, но это не должно сработать, если клиент написан правильно. А если цс не будет знать приватный ключ, то даже он не сможет сгенерить идентичную пару ключей (так как для этого придётся факторизовать модуль), так что можно зафиксировать публичный ключ, и тогда атакующие будут в пролёте.
Если не хотите заморачиваться с реализацией вэб сервиса вот вам два варианта. Судя по всему оба вам подойдут (раз уж вам только база нужна то у вас не сильно сложная бизнес логика и от сервера нужен старый добрый CRUD)
Возможно вам стоит посмотреть в сторону СУБД которые из коробки (или почти) предоставляют REST интерфейс? Например mongodb. Есть так же mongolab.com и compose.io
Во-первых не только CRUD, но и SELECT-ы и UPDATE-ы с множеством усовий и даже подзапросы. Во-вторых смотреть в сторону нельзя - хостинг даёт только MySQL и PHP и без вариантов.