ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #7931  
Старый 19.01.2009, 02:03
Fuckel
Участник форума
Регистрация: 17.01.2008
Сообщений: 170
Провел на форуме:
1608606

Репутация: 105
Отправить сообщение для Fuckel с помощью ICQ
По умолчанию

для использование явой и не пахнет. #7964 пост прочитай, там все понятно.
 

  #7932  
Старый 19.01.2009, 03:27
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию

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

  #7933  
Старый 19.01.2009, 04:36
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Если узеры храняться в муслке,просто добавь ячейку с названием скажем "Group" или что-то в этом роде и в дальнейшем при заходе на определенную страницу берешь оттуда его уровень доступа и пускаешь или наоборот не пускаешь...
 

  #7934  
Старый 19.01.2009, 04:45
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Цитата:
Сообщение от svesve  
Встала такая задача
нужно написать небольшой скриптик который будет взависимоти от уровня доступа пользователя разрешать ему доступ к редактированию конкретных разделов либо наоброт запрещать.
Такой вопрос...как это лучше реализовать?
пока алогритм такой
пользователь логинится,в сесиии деожу его уровень доступа,на кажой паге которая нужна проверяю нужный уровень доступа либо да либо нах )
безопасно ли хранить в сесии? есть другой какойнить способ? может там класс писать или функцию
спс.


Цитата:
Сообщение от rudvil  
Если узеры храняться в муслке,просто добавь ячейку с названием скажем "Group" или что-то в этом роде и в дальнейшем при заходе на определенную страницу берешь оттуда его уровень доступа и пускаешь или наоборот не пускаешь...

если нет http-авторизации, неважно, где ты будешь хранить уровень доступа, в сессии напрямую или каждый раз брать из базы (что на мой взгляд гораздо хуже, каждый F5 - новый запрос к базе, лишняя нагрузка). Если перехватят куки - так или иначе почитают, что скрыто. Независимо от метода проверки. Вывод - конечно в сессии проще хранить, или в любом другом параметре кукисов. Другое дело просто хранить можно так, чтобы не было понятно, что эта цыферька означает. Хотя и это тоже при перехвате кук никакого особого значения уже иметь не будет. Главное админку грамотно запрятать и защитить (исключительно http-авторизация, через .htaccess и .htpasswd
 

  #7935  
Старый 19.01.2009, 07:15
[x26]VOLAND
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


Отправить сообщение для [x26]VOLAND с помощью ICQ Отправить сообщение для [x26]VOLAND с помощью AIM
По умолчанию

Цитата:
Сообщение от svesve  
Встала такая задача
нужно написать небольшой скриптик который будет взависимоти от уровня доступа пользователя разрешать ему доступ к редактированию конкретных разделов либо наоброт запрещать.
Такой вопрос...как это лучше реализовать?
пока алогритм такой
пользователь логинится,в сесиии деожу его уровень доступа,на кажой паге которая нужна проверяю нужный уровень доступа либо да либо нах )
безопасно ли хранить в сесии? есть другой какойнить способ? может там класс писать или функцию
спс.
Юзай принцип ACL (Access Control List). На каждое атомарное действие (view/insert/update/delete) над каждым объектом задай уровни доступа, которые будут опираться на GroupID юзера и храниться в базе. Затем одним простым запросом вытаскивай всю таблицу ACL и сверяй права. Можешь реализовать кэширование, если напрягает постоянное обращение к базе.

http://ru.wikipedia.org/wiki/ACL - оно. Применяй эту концепцию к ООП.

UPD: Данный подход позволяет в дальшейшем легко управлять правами групп через админский интерфейс, не редактируя исходники.

UPD2: Надеюсь ты в своей CMS используешь ООП, в противном случае я тебе сочувствую.

Последний раз редактировалось [x26]VOLAND; 19.01.2009 в 07:39..
 

  #7936  
Старый 19.01.2009, 09:24
w.u.n.
Познающий
Регистрация: 13.12.2008
Сообщений: 54
Провел на форуме:
217810

Репутация: 80
По умолчанию

хранить в сессии ua+ip
 

  #7937  
Старый 19.01.2009, 11:48
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Цитата:
Юзай принцип ACL (Access Control List). На каждое атомарное действие (view/insert/update/delete) над каждым объектом задай уровни доступа, которые будут опираться на GroupID юзера и храниться в базе. Затем одним простым запросом вытаскивай всю таблицу ACL и сверяй права. Можешь реализовать кэширование, если напрягает постоянное обращение к базе.

http://ru.wikipedia.org/wiki/ACL - оно. Применяй эту концепцию к ООП.

UPD: Данный подход позволяет в дальшейшем легко управлять правами групп через админский интерфейс, не редактируя исходники.

UPD2: Надеюсь ты в своей CMS используешь ООП, в противном случае я тебе сочувствую.
Всё верно говоришь, только я бы не стал задавать уровни доступа над каждым объектом - слишком много мета-описания для однотипных объектов... Слишком этом громоздко в каждой странице проверять права доступа и т.д.). Лучше хранить уровни доступа для групп объектов - ну там статьи, новости, файлы, профили пользователей и т.д., т.е. права определяют не отдельные объекты, а группу однотипных объектов.
 

  #7938  
Старый 19.01.2009, 12:46
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию

данные о правах
PHP код:
$query "SELECT users.user_id,users.right_id,rights.* FROM users,rights WHERE users.right_id=rights.right_id and login='$name'";
        
$res mysql_query($query) or trigger_error(mysql_error().$query);
            if (
$row mysql_fetch_assoc($res)) {
                
$_SESSION['user_id'] = $row['user_id'];
                
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
                
$_SESSION['priv']=$row['right_id'];
            } 
в header.inc.php
прописываю конкретно какие права у юзера
PHP код:
mysql_connect('localhost','calendar','123123') OR DIE("Не могу создать соединение ");
mysql_select_db('smart_calendar') or die(mysql_error()); 
$query "SELECT  * FROM `rights` where right_id='$_SESSION[priv]'";
$res=mysql_query($query) or die(mysql_error());
while(
$row=mysql_fetch_array($res)){
$_SESSION['rights']=$row['rights'];
$_SESSION['holidays']=$row['holidays'];
$_SESSION['structure']=$row['structure'];
$_SESSION['users']=$row['users']; 
а далее на каждой странице идет проверка
PHP код:
if($_SESSION['holidays']=='1'){ 
это вообще правильно все?

З.Ы. это не кмска )
 

  #7939  
Старый 19.01.2009, 12:57
prescott
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме:
728470

Репутация: 115
По умолчанию

Насколько я понимаю, при взломе сайта на reverse-ip сессии твоих пользователей можно будет редактировать, так что я бы сверялся с БД каждый раз когда нужно проверить права.
 

  #7940  
Старый 19.01.2009, 13:02
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Цитата:
Насколько я понимаю, при взломе сайта на reverse-ip сессии твоих пользователей можно будет редактировать, так что я бы сверялся с БД каждый раз когда нужно проверить права.
prescott, при чём тут reverse-ip? Глупый набор слов не имеющий никакого смысла...

svesve, конечно это не эталон программирования, но вполне работоспособная реализация.
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ