PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
caballero
Отправлено: 06 Мая, 2012 - 01:33:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 6001
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
то зная путь и имя нужного js файла (который в админке) можно вызвать его из адресной строки не залогинившись.

любой файл можно вызвать не залогинившись.
Но против

нет приема. Во всяком случае клиентского.

(Отредактировано автором: 06 Мая, 2012 - 01:34:48)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
avtor.fox
Отправлено: 06 Мая, 2012 - 01:45:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2082
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Срач достоин внимания Ха-ха

По моему контроллер Ваше решение. Но это колоссальная работа по обработке всех типов данных.

И у Вас всё же паранойя Улыбка
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Мая, 2012 - 02:02:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4516
Дата рег-ции: Февр. 2011  


Помог: 219 раз(а)





Это справедливо только для вызываемых php/html файлов.
И ничем это не поможет при таком запросе:
_http://site.ru/admin/js/file.js
Выдаст в браузер как ни в чём не бывало.
(Добавление)
caballero пишет:
любой файл можно вызвать не залогинившись.

Уберить это:
PHP:
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f

И кроме индексного файла Вы ничего больше не получите.
(Добавление)
avtor.fox пишет:
И у Вас всё же паранойя

Спасибо за комплимент! Радость
(Добавление)
avtor.fox пишет:
Но это колоссальная работа по обработке всех типов данных.

Подключаться таким образом будут только необходимые файлы для определённой страницы.
Да к тому же только те, которые имеют отношение к админке.
Так как все подобные файлы будут в определённой директории со своим файлом htaccess.

(Отредактировано автором: 06 Мая, 2012 - 02:25:26)

 
 Top
DelphinPRO
Отправлено: 06 Мая, 2012 - 02:25:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7191
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




попробую еще раз. на пальцах. Улыбка

есть яваскрипт secure.js
в нем есть функция, отправляющая ajax-запрос на сервер для удаления пользователя из БД
допустим такого вида
CODE (text):
скопировать код в буфер обмена
  1. /admin.php?action=delete&id=2
в файле admin.php есть проверка
PHP:
скопировать код в буфер обмена
  1. if (!current_user_is_admin()) die('go away!');
Предположим хакер смог получить доступ к файлу secure.js и узнал какой запрос нужно послать. Он посылает запрос и идет лесом. Потому что админских привилегий у него нету.

Внимание, вопрос! Какой смысл ограничивать доступ к ява-скрипт файлу?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Мая, 2012 - 02:27:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 4516
Дата рег-ции: Февр. 2011  


Помог: 219 раз(а)




DelphinPRO пишет:
Внимание, вопрос! Какой смысл ограничивать доступ к ява-скрипт файлу?

Как говорится, от греха подальше Радость
Мало ли, что за мозг его получит Радость
Пусть это паранойя, зато железобетонно Радость
Ну, или почти...
 
 Top
DelphinPRO
Отправлено: 06 Мая, 2012 - 02:29:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 7191
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Всё. Теперь ясно. Улыбка Можно со спокойной душой идти спать.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Мая, 2012 - 02:31:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4516
Дата рег-ции: Февр. 2011  


Помог: 219 раз(а)




DelphinPRO пишет:
Всё. Теперь ясно. Улыбка Можно со спокойной душой идти спать.

Давай Подмигивание
 
 Top
caballero
Отправлено: 06 Мая, 2012 - 02:57:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 6001
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
И ничем это не поможет при таком запросе:
_http://site.ru/admin/js/file.js

ты прямо яваскриптом идешь в БД на сервере?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Мая, 2012 - 03:16:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 4516
Дата рег-ции: Февр. 2011  


Помог: 219 раз(а)




closed
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Мая, 2012 - 04:10:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 10378
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Типа роутер:
PHP:
скопировать код в буфер обмена
  1. if (/* controller/action */) {
  2.   // работаем на отдачу контента
  3. } else if (/* specific etc. controller/etc. action */) {
  4.   // работаем с доп-контроллерами, я хз чо там
  5. } else if (file_exists($_SERVER['DOCUMENT_ROOT'] . $request)) {
  6.   die(file_get_contents($_SERVER['DOCUMENT_ROOT'] . $request));
  7. } else {
  8.   die('Error 404');
  9. }
Но это реально паранойя...
 
 Top
tuareg
Отправлено: 30 Мая, 2012 - 09:59:19
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Можно, сделать так чтобы в файлах js выполнялся php код.
+/- http://habrahabr[dot]ru/post/139154/
 
 Top
Vinyl
Отправлено: 01 Июня, 2012 - 13:17:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 646
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




armancho7777777, все Вам правильно написали.

Есть у вас html-файл с кнопкой, который вызывает функцию передачи данных в Ajax-файле в обработчик на php. К примеру, кнопка вызывает Ajax-функцию del_user(), которая в свою очередь не удаляет юзера, а всего лишь передает скрипту php параметр $_GET['del_user'] (http://.../.../del.php?del_user=3). В php-файле что-то вроде:

PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_SESSION["userid"])) //проверяем, залогинен ли пользователь
  3. {
  4.   if(isset($_GET['del_user'])) //передан ли параметр
  5.   {
  6.     $deleteUser = $_GET['del_user'];
  7.     mysql_query("DELETE FROM users WHERE id='$deleteUser' "); //если да - удаляем юзера
  8.   }
  9. }
  10. else //если нет - выходим.
  11. {
  12.   die;
  13. }
  14.  


Так вот, аякс в данном случае позволяет тупо обойтись без перезагрузки страницы, не более. Пока не дадите посетителю $_SESSION["userid"], ниче он сделать не сможет, даже если Ваши исходники видел, и знает каким гетом в каком файле удалить юзера.

Можете спрятать Ваш обработчик под Deny from all и инклюдить его откуда-нибудь, а можете всю директорию с админкой закрыть базовыми средствами Apache (.htpasswd), но в любом случае, захотят сломать - сломают. В дата-центре крысу найдут и получат что надо) Ну это если у Вас прям СУПЕРсекретная дорогая инфа там. А от шалостей if(isset($_SESSION["userid"])) более чем достаточно.

Удачи.

(Отредактировано автором: 01 Июня, 2012 - 13:20:03)



-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
cruperman
Отправлено: 22 Мая, 2015 - 23:38:12
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Немного некропостинга, но думаю многим будет полезно.
Для того, чтобы получить доступ к файлу стилей и т.п. в директории с данным файлом нужно поместить .htaccess с содержанием:
Allow from all
Это при условии, что вы используете единую точку входа через .htaccess.
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB