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
Форумы портала PHP.SU :: Версия для печати :: админка
Форумы портала PHP.SU » » Вопросы новичков » админка

Страниц (1): [1]
 

1. mindinbox - 15 Октября, 2011 - 11:24:39 - перейти к сообщению
Вопрос скорее теоретический.

Вот я раньше думал зачем она нужна эта админка, когда можно все редактировать руками, зная код, тем более написаный тобой. Но все повернулось иначе, появись у меня некое подобие сайта. И так, я сей час кое-что скажу по поводу, а вы подтвердите или опровергните и подскажите оптимальные пути решения.

И так, например, у меня есть сайт http://mysite.ru. Когда пользователь вводит в адресной строке браузера это название, то он автоматически попадает на главную страницу index.php, к примеру... и все, все операции (как видит пользователь) проходят именно на ней. Ну допустим там есть еще ссылка на новости и в этом случае (для пользователя опять же) на этом сайте существует только 2е страницы индекс и ньюс. Допустим мне нужно попасть в админку и добавить новость или изменить дизайн или забанить юзера и, что бы в нее попасть, я дописываю в адресной строке нечто на вроде http://mysite[dot]ru/a*d_m_i*n/control_panel.php (об этой странице знаю только я, и темболее там может находится еще дикая авторизация и логин и пароль опять же знаю только я) где у меня находится меню управления/добавления всего и вся...

Теперь, непосредственно вопрос. Так ли это вообще делается? Безопасно ли так делать? И каким образом можно сделать еще? Вот впринципе то, что меня интерисует.
2. Сид Вишез - 15 Октября, 2011 - 13:49:20 - перейти к сообщению
нет, это не безопасно. её легко будет найти с помощью какого-нить сканера структуры сайтаhttp://hacker-pro[dot]net/showthread.php?t=13747
3. White - 15 Октября, 2011 - 14:31:04 - перейти к сообщению
Сид Вишез ну найдет, и что дальше? в большинстве cms админки вообще находятся по адресу admin/ или administrator/ ну и толку с того? если грамотно сделана авторизация, и используется единая точка входа можно и ссылку на главную страницу на админку кинуть, большими красными буквами, только это никак не повлияет на безопасность.
4. mindinbox - 15 Октября, 2011 - 22:50:25 - перейти к сообщению
Про авторизацию и точку входа понятно, но тем не менее куча вопросов остаются для меня без ответов. Хотелось бы получить более детальное описание по организации этого дела.
5. White - 15 Октября, 2011 - 23:46:41 - перейти к сообщению
mindinbox пишет:
куча вопросов остаются для меня без ответов
ну так задайте их.
6. caballero - 16 Октября, 2011 - 00:11:09 - перейти к сообщению
Если сайт не слишком сложный зачем вообще некая отдельная админка
Отдельная админ панель это как минимум дублирование функционала - например список товаров на страницах сайта и похожий список в админке

Если залогинившийся на сайт юзер является админом - просто покажите дополнительные пункты меню или дополнительные мконки (например редактирование на списке товаров)
7. vixa - 16 Октября, 2011 - 00:56:20 - перейти к сообщению
Вот примерный код как защитить админку а пользуясь методами ПОСТ
CODE (html):
скопировать код в буфер обмена
  1. http://mysite.ru/?id=admin

PHP:
скопировать код в буфер обмена
  1. $id = $_POST['id'];
  2. switch($id) {
  3. case "admin";
  4. if($_SESSION['ID'] != "" && $row['userstatus'] == 1) {require_once "admin.php";} else {require "firs.php";}
  5. }
8. White - 16 Октября, 2011 - 09:27:39 - перейти к сообщению
vixa а что произойдет если мы перейдем по адресу http://mysite.ru/admin.php? вобще HTTP методами защитить ничего нельзя.
9. mindinbox - 21 Октября, 2011 - 11:01:50 - перейти к сообщению
что-то я совсем забыл про эту тему... И тем не менее благодарю всех, ответивших, кое-что узнал новое.... Вобщем пока я забыл про эту тему, я додумал и сдела как думал, а именно: отдельная паппка в корне сайта, например, "admin" в ней (не удалось избежать дублирование, долго мучился ня д этим, но зайдя сюда, понял, что это нормально, за это спасибо). В этой папке еще одна папка и два файла, один из которых не пускает на второй если ввести неверный пароль, а на втором же имеется проверка этого самого пароля. Пароль находится в базе, а конфиги базы в отдельной папке защищены .htaccess'ом... авторизация выглядитм примерно так:

файл_1
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action = "файл_2.php" method = "post">
  3.         <input type = "text" name = "lgn">
  4.         <input type ="password" name = "pwd">
  5.         <input type = "submit" name = "go" value = "go">
  6.         <input type = "reset" value = "clear">
  7. </form>
  8.  


файл_2
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM таблица WHERE ID = '1'"); //примерный запрос
  3.         $query = mysql_num_rows($result);
  4.  
  5. if ($query != 0) {
  6.         while ($q = mysql_fetch_array($result)) {
  7.                 if($_POST['lgn'] !== $q['LGN'] || $_POST['pwd'] !== $q['PWD']) {
  8.                         header ('Location: файл_1.php') ;
  9.                 }else echo "Добро пожаловать, господин" ;
  10.                                 }
  11.  }
  12.  


Что бы зайти в админку, я пишу в адресной строке http://мойсайт/файл_1.php. В файле_2 и находится сама панель управления. Правильно ли так делать или это просто извращение? И правильно ли хранить пароли в базе в открытом виде? И как зашифровать пароль в базе.

P.S. Не стоит сильно меня пинать. Казалось бы все ясно, но что если виной всему параноя, которая находится в конфликте с нехваткой мозгов. Вот и прошу вбить этих самых мозгов, что бы прекратить конфликт.
10. Stasnislav - 21 Октября, 2011 - 11:41:20 - перейти к сообщению
Пароли в md5
11. mindinbox - 21 Октября, 2011 - 11:55:50 - перейти к сообщению
md5... хм... буду копать по md5. Благодарю.
12. gephaest - 21 Октября, 2011 - 11:59:46 - перейти к сообщению
желательно еще данные из формы экранировать
13. mindinbox - 21 Октября, 2011 - 15:50:51 - перейти к сообщению
gephaest пишет:
желательно еще данные из формы экранировать

каким образом?
14. fredrsf - 21 Октября, 2011 - 18:02:01 - перейти к сообщению
Хороший вариант единой точки входа и разделение типа роль-право. Если роль такая-то, то права такие-то. Как-то так я и делаю)))
(Добавление)
mindinbox пишет:
gephaest пишет:
желательно еще данные из формы экранировать

каким образом?

sprintf() + mysql_real_escape_string(), а еще лучше PDO.
15. mindinbox - 09 Ноября, 2011 - 18:03:41 - перейти к сообщению
спасибо, ребят.

 

Powered by ExBB FM 1.0 RC1