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 :: Защита сайта. Про $_SERVER['HTTP_HOST']
Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011
Помог: 2 раз(а)
Здравствуйте как можно не допустить или проверить что переменные $_SERVER['HTTP_HOST'] и $_SERVER['SERVER_NAME'] не изменены пользователем а значения получены именно от сервера.
То есть им не присвоены значения в ручную например.
$_SERVER['HTTP_HOST'] = 'php.su';
Это нужно для защиты скрипта по лицензии.
Или же есть более надёжные способы получения адреса сайта на который установлен скрипт.
LIME
Отправлено: 15 Октября, 2013 - 16:53:30
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
если изменить $_SERVER['HTTP_HOST'] то ты просто не получишь этот запрос
именно по этому заголовку сервер определяет какому хосту(из многих на данном ip) отдать запрос
то же относится к $_SERVER['SERVER_NAME']
он просто определяется по хосту (Добавление)
если же имеется ввиду изменение в php скрипте то это никак
EuGen
Отправлено: 15 Октября, 2013 - 17:01:08
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
LIME
Насколько я понял, имеется ввиду изменение вручную до проверки где-либо внутри кода (иначе в чём смысл обращаться к $_SERVER текущего сервера). То есть
gheka
На всё, что находится на стороне, где установлен скрипт - нельзя полагаться. Если код может быть модифицирован, можно считать, что он неподконтролен. Вероятно, может иметь смысл отправки запроса на некоторый сервер авторизации, на котором будет проверяться лицензионный ключ (возможно, с привязкой к IP-адресу), но здравомыслящий заказчик на такое не пойдёт, поскольку никто не захочет зависеть от доступности Вашего сервера и/или от задержек сети при пересылке/проверке лицензии. И, опять же, это не имеет смысла делать, если код может быть модифицирован.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
esterio
Отправлено: 15 Октября, 2013 - 17:04:04
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Также проверка на другой стороне может быть подделана с помощю тех самых хостов на localhost, что также не дает 100% уверености
LIME
Отправлено: 15 Октября, 2013 - 17:05:34
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
esterio а какой смысл это делать?
тогда придется подделывать ключ
тогда надо искать где он вычисляется
а найдя тогда проще это тупо вырезать
esterio
Отправлено: 15 Октября, 2013 - 17:09:14
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Ну припустим банальная проверка cURL-ом на IP с соответсвенным результатом типа
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
gheka пишет:
То есть им не присвоены значения в ручную например.
$_SERVER['HTTP_HOST'] = 'php.su';
LIME пишет:
если изменить $_SERVER['HTTP_HOST'] то ты просто не получишь этот запрос
Бред. Как я могу не получить запрос, если он уже получен?
EuGen
Отправлено: 15 Октября, 2013 - 17:12:09
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
esterio
Любую лицензионную проверку (которая выглядит примерно как if(licenceOk()) - возможно, с какими-нибудь параметрами) легче всего - и разумнее всего не вырезать, а модифицировать условие, добавляя в его начало 1 || - поскольку это одновременно сохранит изначальную логику.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
LIME
Отправлено: 15 Октября, 2013 - 17:13:41
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Squirrel снова ты?))
злая белка-тараторка)
а ты почитай дополнение и подумай
попробуй
Squirrel пишет:
Как я могу не получить запрос, если он уже получен?
я понял что речь идет о подделке заголовка
а вообще я люблю побредить...да (Добавление)
EuGen пишет:
и разумнее всего не вырезать, а модифицировать условие
ну это ясно
имелось ввиду не замарачиваться с хостами вообще
esterio
Отправлено: 15 Октября, 2013 - 17:24:08
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Кстати как пример можна привести IPB форум и платные модули|темы к джумле, которые крякнуты и доступне масово для скачивания (Добавление) Squirrel
Я вижу Вы далее играете в всезнайку
Squirrel
Отправлено: 15 Октября, 2013 - 17:37:16
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
esterio Указывание на откровенный бред хамящего тролля, ты называешь "играете в всезнайку"?
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
gheka пишет:
Или же есть более надёжные способы получения адреса сайта на который установлен скрипт.
Я присоединяюсь к вопросу. Есть ли на данный момент здравые проверенные способы привязки лицензионного ПО к домену?
Мелкий
Отправлено: 15 Октября, 2013 - 19:20:39
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
MAXUS пишет:
здравые проверенные способы привязки лицензионного ПО к домену?
Здравых нет. Т.к. сильнее всего мешает именно легальным пользователям.
Не здравые, но рабочие (проверяйте только версии PHP) - zend, ioncube
----- PostgreSQL DBA
MAXUS
Отправлено: 15 Октября, 2013 - 19:43:31
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
gheka пишет:
Или же есть более надёжные способы получения адреса сайта на который установлен скрипт.
Тут такая идея возникла. Гуру пусть сильно не ругаются, если глупость скажу. Возьми сразу в начале скрипта захэшируй $_SERVER['HTTP_HOST'] через, например, SHA1() с какой-нибудь солью.
А потом проверяй. Если кто-то встрянет между или после, то уже пролетит. Если до, то не поможет, конечно. Но хоть что-то.
Еще идея, абстрактная (не проверял), как можно не дать вставить что-либо до. Бахнуть там ошибку и вычислить в какой она строке. Если строка больше, чем должна, то значит, кто-то вперед залез. Не знаю есть еще какие-нибудь способы подсчитать количество строк до определенного оператора?
(Добавление)
Мелкий пишет:
MAXUS пишет:
здравые проверенные способы привязки лицензионного ПО к домену?
Здравых нет. Т.к. сильнее всего мешает именно легальным пользователям.
Не здравые, но рабочие (проверяйте только версии PHP) - zend, ioncube
Спасибо за наводку. А там в итоге все к шифрованию сведется или шире возможности?
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Само собой, что запрятать это надо.
куда запрячешь в открытом исходном коде?
впрочем тема носит чисто теоретический характер. Я еще не встречал того который бы хотел запрятать код на PHP но его код был бы настолько ценен что его был бы смысл прятать.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.