Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Защита кода

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: платные CMS
Prizma
Отправлено: 24 Июля, 2012 - 16:45:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Я думал что т.к. php не компилируется нельзя защитить код, а потом задумался, как тогда работают платные CMS? ну да допустим дадут они часть кода, человек проплатил вторую часть кода, а что мешает ему потом распространить этот код или выложить в интернет? почему он не будет работать? или будет?

потом прочитал про существование в PHP5+ "protected", "private" или "public" - это то что используется в классах что бы ограничить использование функции... так а даже если и защитить такой лабудой, если скрипт выполняется на сервере то можно открыть файл с этим классом изменить там что нужно или скопировать файл и выложить в интернет... или я чего то не понимаю?

наверно здесь есть люди которые работали с платными движками, как они защищают себя от распространения?

и ещё, есть сайт каталог работающий на старой joomla 1.5 + virtuemart но т.к. движок сильно устарел, форумы поддержки не активны практически, функций мало и т.п. посоветуйте движок для сайта-каталога (желательно что бы была перспектива для интернет-магазина в будущем)
(Добавление)
не обязательно бесплатная CMS но желательно не сильно дорогая
 
My status
 Top
Мелкий Супермодератор
Отправлено: 24 Июля, 2012 - 17:08:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Prizma пишет:
или я чего то не понимаю?

Не понимаете. Эти модификаторы нужны только разработчику, позволяют скрыть детали реализации в методах, оставив доступным другому коду лишь интерфейс взаимодействия.
Куда сложнее помнить, что вот эти 8 из 10 методов - для внутреннего использования сделаны. Когда вам надо изменить метод и он - private - вы знаете, что весь проект можете не смотреть, потому что весь код, использующий этот метод - в этом же классе. И прочее из арсенала инкапсуляции.


Хорошей CMS защита не нужна, наоборот, распространение её - реклама оригинальной компании. Корпоративным клиентам нужна поддержка (например, подпиливание под свои нужды) и обратятся они к разработчикам.
Те, кто не уважает своих пользователей и ставят превыше эфемерную защиту своего... продукта - используют обфускацию. Защита обычно никакая, а поддерживать это невозможно.
Если это что-то достаточно уникальное и хотят защиты - ionCube и Zend Optimizer, что накладывает свои ограничения на хостинг и полный крест на самостоятельной поддержке. Vendor Lock. Ну и денег стоят.


-----
PostgreSQL DBA
 
 Top
Prizma
Отправлено: 24 Июля, 2012 - 20:15:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




понятненько, то есть скрытие заключается всего навсего в сложности кода.

А по поводу классов я с ними не много работал класс обязательно должен быть подключен выше по файлу что бы его использовать в данном скрипте так? так же как и функции

и не совсем понял по поводу "protected", "private" или "public" вот этих параметров... допусти я создал класс class.php:
PHP:
скопировать код в буфер обмена
  1. class mycalss
  2. {
  3. var $login;
  4.  
  5. function login($login)
  6. { echo $this->login;}
  7.  
  8. }

PHP:
скопировать код в буфер обмена
  1. файл index.php:
  2. include 'class.php';
  3.  
  4. $class = new myclass()
  5. $class->login();

в чем будет различие доступа класса myclass в файле index.php в зависимости от выбранного одного из параметров "protected", "private" или "public"?
 
My status
 Top
DelphinPRO
Отправлено: 24 Июля, 2012 - 20:42:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Prizma пишет:
не совсем понял по поводу "protected", "private" или "public"

public метод (свойство) доступно внутри класса, вне класса, из унаследованного класса.
private метод (свойство) доступно только внутри класса.
protected метод (свойство) доступно внутри класса, из унаследованного класса.


Ответы на такие вопросы надо в учебниках искать, а не на форуме


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Prizma
Отправлено: 25 Июля, 2012 - 23:39:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




не совсем понял что значит "внутри класса" и "в не класса" внутри класса это когда мы пишем new ИМЯ_КЛАССА; и через $this->Функция(переменная)? а в не класса это надо что бы класс просто был подключен так? не обязательно писать new ИМЯ_КЛАССА; и вызывать через $this составляющие класса так? или не правильно понял?
 
My status
 Top
Toxa
Отправлено: 25 Июля, 2012 - 23:50:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


Нет, не правильно
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. Class User
  3. {
  4.     private $_name; // переменная доступна только внутри класса
  5.  
  6.     public function setName($name)
  7.     {
  8.         $this->_name = $name; // присваиваем значение внутренней переменной
  9.     }
  10.  
  11.     public function getName()
  12.     {
  13.         return $this->_name; // возвращаем внутреннюю переменную
  14.     }
  15. }
  16. ?>

Потом в другом внешнем скрипте

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include 'User.php';
  3.  
  4. $user = new User;
  5.  
  6. // Устанавливаем имя ВНУТРЕННЕЙ переменной через ПУБЛИЧНУЮ функцию
  7. $user->setName('Anton');
  8.  
  9. // Получаем внутреннюю переменную через публичную функцию
  10. echo $user->getName();
  11. ?>

В это примере переменная $_user доступна только внутри класса.


-----
Удобный сервис для хранения файлов
 
 Top
Prizma
Отправлено: 26 Июля, 2012 - 16:30:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




спасибо вроде ясно)
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB