Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Можно ограничить подключения к БД средствами PHP?


Автор: Alukard 29.7.2008, 22:43
Допустим, есть одно подключение к базе данных, назовем его $descriptor1 . В случае, если пользователь отредактирует исходный код так, что для своих нужд создаст ещё одно подключение $descriptor2, можно ли отслеживать создание таких лишних подключений? Или прерывать функцию mysql_connect...Исходить нужно из того, что скрипт может быть использован на любых конфигурациях серверов с любыми настройками, поэтому ограничить количество подключений на сервере не удастся...нужно именно php-перехватчик, так сказать =) Что-то типа синглтона что ли для функции mysql_connect, вообщем понятно, думаю...

Автор: bars80080 29.7.2008, 23:00
если кто-то доберётся до редактирования твоих скриптов - падал твой сервер очень жёстко

Автор: Alukard 29.7.2008, 23:06
Не в этом смысле. Я имел ввиду, что скрипты распространяются свободно, или GNU/GPL как будет угодно =) То есть использовать их могут на различных серверах... 

Автор: skyboy 29.7.2008, 23:07
Цитата(Alukard @  29.7.2008,  21:43 Найти цитируемый пост)
Что-то типа синглтона что ли для функции mysql_connect

http://php.net/mysql_pconnect
правда, в случае креша скрипта, блокированные таблицы и в дальнейшем будут блокированы. впрочем, посмотри ньюансы в http://ua.php.net/manual/ru/features.persistent-connections.php
вообще,мне н понятно отсуствие контроля:
Цитата(Alukard @  29.7.2008,  21:43 Найти цитируемый пост)
В случае, если пользователь отредактирует исходный код так, что для своих нужд создаст ещё одно подключение $descriptor2, можно ли отслеживать создание таких лишних подключений?

это пишется фреймворк или CMS? тогда используй какой-то класс-обретку для подключения к БД. хоть синглтоном его делай(объект класса-обертки), хоть статические поля или переменные используй... лично я не совсем понял проблему.

Автор: Alukard 29.7.2008, 23:13
Теоретически, решение можно увидеть в сканировании файла php на наличие функции mysql_connect..., но это довольно трудоемкий процесс для компьютера... Если не совсем понятно, скажу так, есть файл php использующий для подключения к БД класс, соответственно, обмен данными с БД происходит через этот класс...но ничто не мешает разработчику, который использует скрипт , для своего удобства (или в следствие неохоты разбираться в чужом коде) написать 2-е подключение без этого класса функцией mysql_connect и использовать его для своих манипуляций с БД. А мне хотелось бы, чтобы подключение всегда было одно и не больше, а при попытке создать повторное подключение либо была ошибка с информацией, что надо использовать класс, либо использовалось автоматически старое открытое подключение....сейчас читаю про mysql_pconnet, пока вроде то что нужно +)

Автор: Mal Hack 29.7.2008, 23:23
Цитата(Alukard @  29.7.2008,  23:43 Найти цитируемый пост)
Допустим, есть одно подключение к базе данных, назовем его $descriptor1 . В случае, если пользователь отредактирует исходный код так, что для своих нужд создаст ещё одно подключение $descriptor2, можно ли отслеживать создание таких лишних подключений? 

Если кто-то имеет доступ к исходному коду, то и речи ни о какой защите/отслеживании быть не может.
Ограничивайте доступ к исходникам.

Автор: Alukard 29.7.2008, 23:33
Спасибо, вопрос решен =) Буду шифровать исходники...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)