Комментарии 43
А зачем такие извращения? Я делаю проще, открываю сайт для нужных IP адресов и всё, никаких ключей и кук.
а если IP динамический?
Эм, честно говоря, в большинстве случаев, компании имеют статический IP адрес.
Но если IP динамический, то да, можно и такой вариант применить (:
Но если IP динамический, то да, можно и такой вариант применить (:
а кто сказал, что разрабатывают сайты только компании?
Возможно это мои иллюзии, но студии разрабатывают сайты именно для компаний и «физики» как правило не обращаются, хотя, возможно я опять заблуждаюсь (:
Суть такова:
Каждому по потребностям.
В моём случае достаточно проверки по IP, в вашем этого не достаточно и ваше решение, как временное, вполне применимо.
Суть такова:
Каждому по потребностям.
В моём случае достаточно проверки по IP, в вашем этого не достаточно и ваше решение, как временное, вполне применимо.
Т.е. узнаете все возможные IP принимающих решения в компании, включая их динамические подключения с ноутбуков, домашние, а возможно и IP их друзей?
Нет, мне узнавать незачем, сами расскажут ;)
Ну да, присылает манагер/CEO гневное письмо вида «Йапонамать, почему сайт не работает?!?!11адинадин».
А потом посредством просмотра RFC-822 хидеров узнаем айпи отправившего и открываем ему доступ. :)
Это даже автоматизировать можно, и даже несложно :)
А потом посредством просмотра RFC-822 хидеров узнаем айпи отправившего и открываем ему доступ. :)
Это даже автоматизировать можно, и даже несложно :)
а по моему неплохой вариант, только (Я понимаю. что это не система безопасности, а так, «штора»):
а) надо следить за «доверенной» ссылкой
б) надо чтобы именно эту куку не знали те, кто сайт видеть не должен (вроде того, что разных сайтов-разные куки)
а) надо следить за «доверенной» ссылкой
б) надо чтобы именно эту куку не знали те, кто сайт видеть не должен (вроде того, что разных сайтов-разные куки)
А не проще ли тогда гиперссылку, ведущую на новый сайт (или на обновлённый функционал), никому не давать? Уровень защиты тот же, а возиться меньше.
.htaccess? Allow \ Deny
з.ы.:
А у Вас все админы ханкеры?)
з.ы.:
$AdminCookie = 'HOHOHO! I am super hacker!';
А у Вас все админы ханкеры?)
нет, у нас люди с чувством юмора
как по мне, так лучше:
<?php $allow = '12.34.56.78'; if (!substr($_SERVER['REMOTE_ADDR'],0,strlen($allow)) == $allow) { // вот это кусок скрипта для пользователей require_once 'page_park.html'; die; } // а все, что будет дальше происходить - для администраторов ?>
А если на сайте дофига ссылок, где нужно все тестить, этот «i-want-to-see-this-site», необходимо каждый раз в строку подставлять?
зачем? в куку сохранился флаг, что вы уже вызывали ключ и его больше не надо вызывать
это у вас полный кусок кода который проверят или нет?
if ($_COOKIE['AdminCookie'] != $AdminCookie && $_SERVER['QUERY_STRING'] != $SecretKey)
По данному условию должно быть все равно и куки и секреткей, если они не равны, то мы ничего не показываем,
иначе мы пишем в куку переменную и опять проверяем
if ($_SERVER['QUERY_STRING'] == $SecretKey)
и опять тут секреткей который нужен в URL
или я что-то не так понял…
if ($_COOKIE['AdminCookie'] != $AdminCookie && $_SERVER['QUERY_STRING'] != $SecretKey)
По данному условию должно быть все равно и куки и секреткей, если они не равны, то мы ничего не показываем,
иначе мы пишем в куку переменную и опять проверяем
if ($_SERVER['QUERY_STRING'] == $SecretKey)
и опять тут секреткей который нужен в URL
или я что-то не так понял…
Я не спец конечно, а простая связка .htaccess + .htpasswd?
Делаю по сути так же, только у меня строку $SecretKey не обязательно вводить на главной странице. example.com/path/?$SecretKey — так тоже работает.
Плюс есть SecretKey2 — строка, при вводе которой кука удаляется, и можно чувствовать себя обычным пользователем — убедиться что сайт реально закрыт.
Плюс есть SecretKey2 — строка, при вводе которой кука удаляется, и можно чувствовать себя обычным пользователем — убедиться что сайт реально закрыт.
"$SecretKey не обязательно вводить на главной странице"
у нас тоже самое, как я писал в посте внедряется этот код или в библиотеку, которая вызывается со всем страниц, либо в index.php файл, который с помощью модреврайта на себя все принимает.
у нас тоже самое, как я писал в посте внедряется этот код или в библиотеку, которая вызывается со всем страниц, либо в index.php файл, который с помощью модреврайта на себя все принимает.
Этот вариант ещё хорошо применять, когда есть 2 версии сайта.
Первая эксплуатируется, а вторая тестовая — показывать заказчиками новые фичи. Мы долго думали как лучше это сделать, в итоге тоже к куке пришли.
Первая эксплуатируется, а вторая тестовая — показывать заказчиками новые фичи. Мы долго думали как лучше это сделать, в итоге тоже к куке пришли.
в свое время делал подобную ерунду…
только немного по другой схеме.
есть отдельная страница авторизации, которая проверяет введенный логин-пароль.
если пароль и логин верный — ставим куку
на страницах сайта проверяем. если стоит кука — показать то что запросили, если нет — показываем заглушку.
только немного по другой схеме.
есть отдельная страница авторизации, которая проверяет введенный логин-пароль.
если пароль и логин верный — ставим куку
на страницах сайта проверяем. если стоит кука — показать то что запросили, если нет — показываем заглушку.
а сделать ещё одну точку входа (какой-то __index.php) и писать в сессию параметр, потом просто проверять его наличие. Есть — показываем страничку… Нету — - до свидания, сайт на реконструкции… Врядли у кто-то из пользователей будет перебирать имена файлов… Да и смысла нету…
Забыли установить для cookies HttpOnly, хакеры не дремлют :)
Все простое — гениально, а гениальное — просто.
Хороший толковый пример и решение для описанной ситуации. Комментарии жаль удивили. Похоже комментировали либо те, кто слабо отрезает или просто по-жизни любит поспорить :)
Хороший толковый пример и решение для описанной ситуации. Комментарии жаль удивили. Похоже комментировали либо те, кто слабо отрезает или просто по-жизни любит поспорить :)
жесть какая…
Буквально недавно озадачился такой же проблемой, и (о чудо!) пришел точь-в-точь к такому же решению.
Мое отличие заключается в том, что я вынес код проверки секретного урла, куков и перенаправления в .htaccess:
RewriteCond %{HTTP_COOKIE} !hash276819937ee81772017638837ab49992heef78=true [NC]
RewriteCond %{QUERY_STRING} (i-want-to-see-this-site)
RewriteRule .+ setcookie.php?%1 [L]
RewriteCond %{HTTP_COOKIE} !hash276819937ee81772017638837ab49992heef78=true [NC]
RewriteRule .+ index.html [L]
RewriteRule .+ index.php
Мое отличие заключается в том, что я вынес код проверки секретного урла, куков и перенаправления в .htaccess:
RewriteCond %{HTTP_COOKIE} !hash276819937ee81772017638837ab49992heef78=true [NC]
RewriteCond %{QUERY_STRING} (i-want-to-see-this-site)
RewriteRule .+ setcookie.php?%1 [L]
RewriteCond %{HTTP_COOKIE} !hash276819937ee81772017638837ab49992heef78=true [NC]
RewriteRule .+ index.html [L]
RewriteRule .+ index.php
довольно простое (в хорошем смысле слова) решение. вполне подойдёт для небольших студий, фрилансеров и т.п.
Мы исповедуем религию, предложенную в RoR: есть продакш система — для конечных пользователей, есть девелопмент система — для разработки, есть тест-система — как раз для того, чтобы показать. Если нужно, то БД просто копируются из продакшн в тест или в девелопмент системы — и все счастливы: сайты никогда не лежат.
Мы исповедуем религию, предложенную в RoR: есть продакш система — для конечных пользователей, есть девелопмент система — для разработки, есть тест-система — как раз для того, чтобы показать. Если нужно, то БД просто копируются из продакшн в тест или в девелопмент системы — и все счастливы: сайты никогда не лежат.
Я может что-то не понимаю, но Basic Http Authentication разве не для этого придумали?
столько кода когда можно просто индексным файлом который открывается первым
по умолчанию оставить index2.php (html, htm).
А вторым в очереди стандартным index.php.
Когда надо что-то потестить загружате index2.php (к примеру) и все будет прекрасно.
Для пользователей сайт временно не будет существовать.
по умолчанию оставить index2.php (html, htm).
А вторым в очереди стандартным index.php.
Когда надо что-то потестить загружате index2.php (к примеру) и все будет прекрасно.
Для пользователей сайт временно не будет существовать.
Я обычно отладку такого рода вывожу на поддомен или в подпапку, и то и другое прекрасно паролится через .htaccess. Но способ имеет право на жизнь, безусловно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Закрываем доступ к сайту