Кой е най-лесният/най-сигурният начин да позволите на администраторите да станат други потребители

Имам контролен панел, който позволява на администраторите да въвеждат определени критерии за търсене за потребител с цел модериране. Почти се страхувам да призная това тук поради обратната реакция, която със сигурност ще получа, но на тази страница администраторите могат да потърсят потребителски пароли, така че да могат да се вписват като тях за целите на модерирането. Така че, преди да ми разкъсате нова, позволете ми да кажа, че ТОКУ-ЩО завърших хеширането на всички пароли с sha1 и уникална сол!

Това се каза. Искам да позволя на администраторите да могат да "станат" потребител или да влязат като всеки потребител, който изберат.

Търся най-лесния и сигурен метод как да направя това. Моля, уведомете ме за всяка информация, която може да ви е необходима от мен, за да можете да отговорите по-добре на въпроса ми.

Благодаря предварително.


person LightningWrist    schedule 10.02.2011    source източник
comment
Бих искал да маркирам това като bad-idea, но това е единствената скръб, която ще получите от мен. :-)   -  person CanSpice    schedule 10.02.2011
comment
Трябва ли администраторите да бъдат потребителите или просто да бъдат същата роля като потребителя?   -  person Sampson    schedule 10.02.2011
comment
Използвайте система за разрешения, която ще позволи на администраторите да симулират потребителски разрешения, вместо да дават на администраторите достъп до потребителски пароли. Това прави phpBB и мисля, че е доста готино.   -  person BoltClock    schedule 10.02.2011
comment
много кратък относно подробностите, необходими за отговор на въпроса. вероятно променя стойностите в сесията, за да съответства на потребителя, а след това отново може би не   -  person    schedule 10.02.2011
comment
@BoltClock - Няма да се използват пароли. Това ще включва наследяване на потребителски идентификатори или нещо подобно. @Jonathan Sampson - те просто трябва да могат напълно да контролират съдържанието си. Изтрийте определени публикации и т.н. @CanSpice - благодаря, че ме пощадихте :)   -  person LightningWrist    schedule 10.02.2011
comment
@LightningWrist: Не разбирам, не казваш ли, че администраторите могат да търсят потребителски пароли, за да могат да влизат като тях?   -  person BoltClock    schedule 10.02.2011
comment
По-добре да създадете набор от инструменти за администраторите, за да правят промени, отколкото да ги оставите просто да поемат ролята на този човек. По този начин те могат да правят промени, които потребителят не може, и можете да вградите trackign, за да видите какво правят администраторите.   -  person MrGlass    schedule 10.02.2011
comment
@BoltClock - току-що ги хеширах   -  person LightningWrist    schedule 10.02.2011


Отговори (2)


Направих това, когато проектирах сайт за гимназия. Позволих на персонала да „прокси“ като друг потребител. Те обаче просто ще въведат потребителското име и след това ще емулира сесия за този потребител. Те никога няма да имат достъп до паролата в нито един момент.

Имах $USER обект и $SESSION обект. $USER съхранява текущия активен потребител, а $SESSION съхранява действително влезлия потребител. Обикновено те биха били еднакви, но ако даден потребител е проксиран като друг потребител, тогава $USER->username няма да е равно на $SESSION->username и това ще ми позволи да покажа банер, който казва „Вие сте проксиран като ПОТРЕБИТЕЛ, за да възобновите сесията си, щракнете върху тук"

person Mitch Dempsey    schedule 10.02.2011
comment
...И ако можете да откриете сценария, можете да запишете честотата му, така че да можете да проследите имитациите. Добро обаждане. - person Dan J; 10.02.2011
comment
Напълно разбирам концепцията, но не съм много сигурен как да подходя разумно към тази структура. Предлагате ли да направите специална страница само за администраторите, която има поле за въвеждане, в което те въвеждат името на потребителя, с който искат да влязат, и просто го изпращат, и това ще промени идентификаторите на сесията? - person LightningWrist; 10.02.2011
comment
@LightningWrist - Да, има страница, която само администраторите могат да видят и която има текстово поле, за да въведат потребителското име, с което искат да прокси. След това правя запис в таблица с прокси сървъри, който казва, че администраторът X е проксиран като потребител Y и след това използвам $SESSION->username, за да проверя таблицата с прокси сървъри и ако има запис там, използвам това потребителско име, за да създам обекта $USER. - person Mitch Dempsey; 10.02.2011

Няма начин да се заобиколят щетите, които администратор може да причини, влязъл като друг потребител. С други думи, на техническо ниво това не е осъществимо. Ще трябва да сте сигурни, че имате достатъчно доверие на всички ваши администратори, за да им дадете тази власт.

Предполагам, че това е видът сигурност, за който говорите. Как всъщност да се приложи това поведение е различен въпрос и ако това сте имали предвид, моля, поправете ме.

person Chris Laplante    schedule 10.02.2011
comment
Добре, аз лично бих се съгласил с предложението на webdestroya. - person Chris Laplante; 10.02.2011