Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> защита сайта - фильтрация символов, подскажите с фильтрацией. Прав ли я? 
V
    Опции темы
Teleport
Дата 25.9.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



вот мой сайт имеет такой вид:
Код

<?php session_start()?>
<html>
<head>
  <title></title>
</head>
<body>
<a href="index.php?pshow=index">Главная</a><br>
<a href="index.php?pshow=vivod">Вывод на страницу</a><br>
<a href="index.php?pshow=contacts">Контакты</a><br>

<?php

if($_GET['pshow'])  //тут начало проверки на опасные символы
{
$_GET['pshow'] = htmlspecialchars((stripslashes($_GET['pshow'])), ENT_QUOTES);
$_GET['pshow'] = str_replace("/","",$_GET['pshow']);
$_GET['pshow'] = str_replace(".","",$_GET['pshow']);
$_GET['pshow']=  str_replace("`","",$_GET['pshow']);

switch($_GET['pshow'])
{
    case 'index':
     echo "Главная страница"; //тут можно вставлять любые переменные
    break;

     case 'contacts':
     echo "Тут наши контакты"; //тут можно вставлять любые переменные
    break;

    case 'vivod':

      // Данные для mysql сервера
     $dbhost = "localhost"; // Хост
     $dbuser = "1"; // Имя пользователя
     $dbpassword = "1"; // Пароль
     $dbname = "bd_risunki"; // Имя базы данных

      $link = mysql_connect($dbhost, $dbuser, $dbpassword) or die("невозможно соедениться");
      mysql_select_db($dbname, $link) or die("невозможно выбрать");
      $query= "SELECT * FROM list";
      $query_x= mysql_query($query, $link)or die("Невозможно выполнить запрос");

          while ($row= mysql_fetch_array($query_x))
      {
           $id= $row['id'];
           $pole1= $row['pole1'];
           $pole2= $row['pole2'];

            $my_pe4at.=     //эта переменная формирует вывод
             "
               $id
               $pole1
               $pole2 <br>
             ";

        }

      echo "$my_pe4at";
      // Закрываем соединение
      mysql_close($link);
    break;

}
}

?>
</body>
</html>


сайт обращается к бд bd_risunki. В ней только одна таблица - list. В таблице 3 поля: id, pole1, pole2.

Переменные передаются методом GET. Вопрос - я вот организовал вроде фильтрацию символов. Правильно ли я ее организовал?
Еще вопрос - какие рекомендации будут еще по защите этого сайта?
Благодарен за любые рекомендации.

Это сообщение отредактировал(а) Teleport - 25.9.2008, 15:49


--------------------
user posted image
user posted image 
PM MAIL   Вверх
teroni
Дата 25.9.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Да тут враг не пройдёт...
Тут же нужная страница выбирается с помощью switch($_GET['pshow']) case...
Даже если кто-то введёт в $_GET['pshow'] что-то гадкое, то оно все равно не совпадёт ни с одним из case.
PM MAIL   Вверх
source777
Дата 25.9.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Тут и защищать то нечего пока...
Тов. Teleport наврядли сможет объяснить зачем тут ему код: 
Код

if($_GET['pshow']) 
{
$_GET['pshow'] = htmlspecialchars((stripslashes($_GET['pshow'])), ENT_QUOTES);
$_GET['pshow'] = str_replace("/","",$_GET['pshow']);
$_GET['pshow'] = str_replace(".","",$_GET['pshow']);
$_GET['pshow']=  str_replace("`","",$_GET['pshow']);



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Teleport
Дата 25.9.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 teroni  - я новичек. Выполняю сайт на заказ для фирмы. проблем с выполнением сайта под их требования вроде нету. Но вот защитить охота этот сайт...  Получается моя фильтрация лишняя?

Добавлено через 3 минуты и 59 секунд
2 source777  - данный код я взял отсюда защита.
Это рассматривалось для $_POST. Но говорилось, что для $_GET тоже можно использовать. Что делает этот код я знаю. 


--------------------
user posted image
user posted image 
PM MAIL   Вверх
source777
Дата 25.9.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Teleport @  25.9.2008,  16:08 Найти цитируемый пост)
2 source777  - данный код я взял отсюда защита.
Это рассматривалось для $_POST. Но говорилось, что для $_GET тоже можно использовать. Что делает этот код я знаю.  
Ну так я так и понял, что это бездумный Copy-Paste, а вот тебе надо подумать зачем оно тут тебе? Что измениться, если этот код убрать?



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Teleport
Дата 25.9.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 source777 - продуманный или бездумный  - тебе это точно не видно  smile 
Я могу думать не совсем правильно - вот это верно. А бездумно я не делаю. Прошу иметь это ввиду.
Вопрос в том, что я не знаю, как можно ломануть мой сайт. Поэтому и ищу разную инфу по инету по защите сайта. 
Вот в строку броузера  можно вводить символы, а символы могут представлять опасность, значит их надо фильтровать... Вот так я и думал.  В чем же моя ошибка? Укажи, пожалуйста smile


--------------------
user posted image
user posted image 
PM MAIL   Вверх
source777
Дата 25.9.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Teleport @  25.9.2008,  16:34 Найти цитируемый пост)
А бездумно я не делаю. Прошу иметь это ввиду.
Тогда ответь на поставленный вопрос: Что изменится, если этот код убрать?


Цитата(Teleport @  25.9.2008,  16:34 Найти цитируемый пост)
Вопрос в том, что я не знаю, как можно ломануть мой сайт.
Если не знаешь, то либо ломать нечего, либо не сможешь защититься, третьего не дано.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 25.9.2008, 17:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



нужно знать всего две функции:

1. при организации запросов к БД вставлять пришедшие переменные в функции mysql_real_escape_string($x);
$sql = 'select * from table where id='.mysql_real_escape_string($_GET['id']);

2. при выводе данных в браузер htmlspecialchars(); чтобы не проскочили всякие тэги
echo htmlspecialchars($perem);
PM MAIL WWW   Вверх
americanets
Дата 25.9.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



ну и где явно должно быть int для ввода в базу
Код

intval( trim($PARAM) );



--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Teleport
Дата 25.9.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 source777 я считаю, что этот код просто защищает от интерпритации опасных символов. Если его убрать, то защиты не будет. Я так думаю. 
Цитата

Если не знаешь, то либо ломать нечего, либо не сможешь защититься, третьего не дано.

Так я и не спорю. Вот я и пытаюсь защититься. Если эта защита неправильна, то ведь можно просто пояснить. А не вопросом на вопрос... :(

Добавлено через 4 минуты и 40 секунд
2 bars80080 - да, читал неоднократно. я вроде так и сделала на своем сайте - 
Код

$_GET['pshow'] = htmlspecialchars((stripslashes($_GET['pshow'])), ENT_QUOTES);


2 americanets - а твой ответ я вообще не понял...


--------------------
user posted image
user posted image 
PM MAIL   Вверх
Teleport
Дата 25.9.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



более менее внятный ответ дал bars80080. Но правильно ли я применяю эти функции?

Это сообщение отредактировал(а) Teleport - 25.9.2008, 18:49


--------------------
user posted image
user posted image 
PM MAIL   Вверх
teroni
Дата 25.9.2008, 19:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Цитата(Teleport @  25.9.2008,  18:00 Найти цитируемый пост)
я считаю, что этот код просто защищает от интерпритации опасных символов. Если его убрать, то защиты не будет. Я так думаю. 

Это неправильно. В данном конкретном случае он просто бесполезен и если его убрать - то ничего не поменяется.
PM MAIL   Вверх
Teleport
Дата 25.9.2008, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



teroni - ясно. Спасибо. smile
А, например, защитить от дефейса? У меня на главной страничке много рисунков... А не просто надпись ведь - Главная страница.
Вообще какими спсобами можно навредить данному сайту? Хотя бы основные укажите? От чего следует защищаться?
У меня уже складывается впечатление, что я написал просто невзламываемый сайт....



Это сообщение отредактировал(а) Teleport - 25.9.2008, 19:35


--------------------
user posted image
user posted image 
PM MAIL   Вверх
bars80080
Дата 25.9.2008, 20:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Teleport @  25.9.2008,  18:00 Найти цитируемый пост)
я вроде так и сделала на своем сайте - 

$_GET['pshow'] = htmlspecialchars((stripslashes($_GET['pshow'])), ENT_QUOTES);
 stripslashes - функция для уборки лишних слэшей, при выемке данных из БД, причём только в том члучае, если при внесении данных была применена функция addslashes. при чтении приходящих переменных - она только навредит. (к примеру, пользователь в текстовом поле упомянул ссылку http:// , а ты не собираешься заносить данные в БД, а решишь их вывести в браузер - тогда она будет жёстко урезана. в случае обратной ситуации, лишним оказывается htmlspecialchars)

нужно последовательно работать с данными. при внесении данных - только mysql_real_escape_string,
при выдаче в браузер - только htmlspecialchars
и проблем не будет

PM MAIL WWW   Вверх
yurik_l
Дата 26.9.2008, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


тарантиноман



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.9.2006

Репутация: 1
Всего: 3



Цитата(bars80080 @  25.9.2008,  20:37 Найти цитируемый пост)
к примеру, пользователь в текстовом поле упомянул ссылку http:// , а ты не собираешься заносить данные в БД, а решишь их вывести в браузер - тогда она будет жёстко урезана


Только что проверил:
Код

echo stripslashes("http://forum.vingrad.ru");

выводит без изменений
Код

http://forum.vingrad.ru

PM MAIL   Вверх
Sunvas
Дата 26.9.2008, 00:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



Цитата(yurik_l @  26.9.2008,  00:32 Найти цитируемый пост)
Только что проверил:

stripslashes - Удаляет экранирующие бэкслэши. (\' преобразуется в ', и т.д.). Двойные бэкслэши (\\) преобразуется в одиночные(\).


Цитата(bars80080 @  25.9.2008,  20:37 Найти цитируемый пост)
только mysql_real_escape_string,

Стоит учесть одно "но": этой функции нужно передавать идентификатор подключения к БД (если правильно кодить). Кроме этого, можно обойтись функцией mysql_escape_string


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
yurik_l
Дата 26.9.2008, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


тарантиноман



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.9.2006

Репутация: 1
Всего: 3



Sunvas, ты последнее сообщение bars80080 читал? Он написал, что функция stripslashes слэши в "http://" удалит. Или я что-то не так понял?
PM MAIL   Вверх
NewDima
Дата 26.9.2008, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Teleport, пойми, два самых распространенных взлома сайта это sqlинъекция и межсайтовый скриптинг.
Первая возможна, когда передаешь параметры из _GET[] (_POST[] и т.п.) прямо в sql запрос, к примеру вот так:
Код

$result=mysql_query("select * from `".$_GET['users']."` where ... ", ...);

это будет очень слабый участок кода, так как данными можно будет манипулировать через get. Ты же пользуешься безопасным способом
Код

$query= "SELECT * FROM list";
$query_x= mysql_query($query, $link);

так как запрос для мускула никак не зависит от каких либо данных вообще!
по этому здесь ненужна никакая фильтрация.

единственная проблема (как мне кажется) - это то, что ничего не будет на странице, если вводить адрес без параметра pshow в get запросе, а это не есть гуд.


во, еще про второй метод забыл сказать. ну здесь у тебя вообще проблем нет, так как
ты не выводишь нигде то, что каким-либо образом манипулируется клиентом. к примеру так
Код

echo "...".$_GET['...']."...";

делать (на сколько я знаю), нельзя

Добавлено через 6 минут и 7 секунд
а если таким методом и будешь выводить, то обязательно обрабатывай запрос перед  выводом его части (или полностью) в браузер

Это сообщение отредактировал(а) NewDima - 26.9.2008, 04:34
PM ICQ   Вверх
SelenIT
Дата 26.9.2008, 05:20 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(Teleport @  25.9.2008,  16:34 Найти цитируемый пост)
а символы могут представлять опасность, значит их надо фильтровать...

Символы не могут представлять опасность.

Опасность может представлять несоблюдение правил чего-либо. Если носить деньги в открытой сумке, их могут украсть, если не мыть руки перед едой, может быть понос, если заниматься незащищенным сексом с кем попало, можно подцепить вензаразу. Это все опасности, но разные, и меры защиты от каждой должны применяться к месту (о чем говорил выше bars80080). Наивно думать, будто от всех этих напастей поможет заворачивание денег в чисто вымытый с мылом презерватив (или "волшебная фильтрация" от любых порчи и сглаза "опасных символов" на входе;)

База данных может хранит любые символы - опасных символов для нее не существует. А вот опасные запросы существуют - например, вместо "SELECT passw FROM users WHERE id=715" некто пропихнет запрос "SELECT passw FROM users WHERE id=751 OR 1" и получит полный список паролей. Тупо "фильтровать" ввод тут бесполезно - например, если тут просто вырезать OR, то гад может всунуть "...WHERE id=715 OORR 1" и после фильтрации получится как раз то, что ему надо. Нужно не "символы фильтровать", а обеспечить, чтобы независимо от входящих данных запрос получился такого вида, как надо нам. Фактически для этого достаточно соблюдать два простых правила, о которых хорошо написано здесь.

Точно так же HTML может выводить на экран абсолютно любые символы - просто нужно помнить, что < и > в нем ограничивают теги, поэтому чтобы вывести их как символы - нужен htmlspecialchars. А значения атрибутов должны обязательно быть в кавычках, иначе первый же пробел станет началом нового атрибута. И опять же, как и с запросами - нужно четко представлять, HTML какого вида надо построить в результате вывода: что вывести как теги, что - как текст, а что лучше вообще убрать. Тогда и никакой XSS не страшен. И лучше делать это не при вводе данных, а именно при выводе - иначе "раскодировать" исходную информацию, если она вдруг понадобится (скажем, для RSS-фида или WAP-версии сайта) будет ох как проблематично.

Ну а если мы явно видим, что нам шлют данные, совсем не похожие на то, что мы ожидаем для нашей задачи - такой запрос лучше просто послать лесом (редиректнуть на главную страницу, выдать 500-ю ошибку или навсегда забанить по IP - по вкусу, в зависимости от суровости автора сайта;). Но именно отбросить весь "неправильный" запрос. А не заниматься самолечением попытками наобум "оживить" его с помощью какой-то наивной "фильтрации"...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
source777
Дата 26.9.2008, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Teleport @  25.9.2008,  18:00 Найти цитируемый пост)
Если эта защита неправильна, то ведь можно просто пояснить. А не вопросом на вопрос... :(

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


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Teleport
Дата 26.9.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 NewDima
Цитата

единственная проблема (как мне кажется) - это то, что ничего не будет на странице, если вводить адрес без параметра pshow в get запросе, а это не есть гуд.


Насчет этого я знаю smile))))))) просто я выложил только скелет сайта, урезал как можно больше балласта. Чтобы легче было код воспринимать. Спасибо. smile С осатльным вроде все понятно.

2 SelenIT - очень внятно и доходчиво. Большое Спасибо. 

Вопрос такой возник по защите - если ввести www.mysite.ru - то отобразится страница index.php, 
а если ввести www.mysite.ru/img - то отобразится список файлов в данной папке. Как сделать, чтобы список файлов не был доступен никому? Неужели нужно в эту папку запихнуть index.php или index.html? 
А как узнать, что у меня есть такач папка img? На любой рисунок на моем сайте правой кнопкой щелкнуть и выбрать пункт Свойства - там указано, что из папки img.


--------------------
user posted image
user posted image 
PM MAIL   Вверх
teroni
Дата 26.9.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



в .htaccess написать надо Options -Indexes
PM MAIL   Вверх
bars80080
Дата 26.9.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(teroni @  26.9.2008,  11:47 Найти цитируемый пост)
в .htaccess написать надо Options -Indexes 

интресно, а если в апаче отключена поддержка .htaccess ?
как быть?
PM MAIL WWW   Вверх
Teleport
Дата 26.9.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



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

2 bars80080 - и как быть?

Это сообщение отредактировал(а) Teleport - 26.9.2008, 15:12


--------------------
user posted image
user posted image 
PM MAIL   Вверх
bars80080
Дата 26.9.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Teleport @  26.9.2008,  15:11 Найти цитируемый пост)
2 bars80080 - и как быть?

я не имею тенденций к патъяпкам. если знак вопроса, значит сам спрашиваю. ибо если его никак не побороть, то значит есть всего две альтернативы блоку от .htaccess:
1. размещение файла index.html
2. перенесение всех скрываемых каталогов из видимых директорий (т.е. у тебя картинки размещаются допустим в localhost/www/image/ , а если перенести папку localhost/image будет не видна, зато к ней можно обратиться по файловой системе. правда, как я понимаю, картинки в этом случае через скрипт придётся отдавать, что тоже не есть хорошо)
PM MAIL WWW   Вверх
source777
Дата 26.9.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(bars80080 @  26.9.2008,  15:56 Найти цитируемый пост)
размещение файла index.html
вот это как раз правильный вариант(в случае отсутсвия доступа к .htaccess), а самое главное - универсальный.

Добавлено через 4 минуты и 1 секунду
Цитата(Teleport @  26.9.2008,  15:11 Найти цитируемый пост)
Вот это мне теперь полностью понятно. Ты, наверное, и вправду хочешь помочь, но из твоих сообщений ничего не ясно. 
Дело в том, что чужие советы со временем забываются, а то до чего ты своим умом дойдёшь запомнится надолго. А если ты хочешь стать программистом, то ты должен учиться думать самостоятельно, а дать ответ на вопрос сразу, не предоставив человеку возможности ответить самому при помощи наводящих вопросов, на мой взгляд медвежья услуга.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Teleport
Дата 26.9.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 source777 - а чтобы было о чем думать самостоятельно - нужен материал. Вот мне сказали - что возможно и как от этого защищаться. Вот теперь есть над чем думать. Куда и чего запихать. А эти наводящие вопросы, в данном конкретном случае - ни к чему не приведут. 

2 bars80080  - понял, спасибо. smile

если я в каждой папке размещу index.html - то список моих файлов не так уж просто будет посмотреть? Я правильно понял?

Это сообщение отредактировал(а) Teleport - 26.9.2008, 17:58


--------------------
user posted image
user posted image 
PM MAIL   Вверх
bars80080
Дата 26.9.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Teleport @  26.9.2008,  17:56 Найти цитируемый пост)
то список моих файлов не так уж просто будет посмотреть?

вообще нельзя будет просмотреть. ты ведь его видишь без индексного файла только потому, что червер отдаёт его тебе, так как в адресе нет страницы, а если ты его закроешь этой страницей (index.html - страница вызываемая по-умолчанию), то просто не сможешь
PM MAIL WWW   Вверх
Teleport
Дата 26.9.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 bars80080 - вообще нельзя будет? А можно ли в строке броузера написать код, который просто обойдет этот index.html ? И выдаст страницу с файлами? Не знаю глупо ли звучит вопрос, но дело в том, что я что-то такое слышал. Может путаю...


--------------------
user posted image
user posted image 
PM MAIL   Вверх
source777
Дата 26.9.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Teleport @  26.9.2008,  17:56 Найти цитируемый пост)
а чтобы было о чем думать самостоятельно - нужен материал. 
тебя на Google забанили что ли? Только на этом форуме всё это уже десятки раз обмусоливалось... 

Цитата(Teleport @  26.9.2008,  17:56 Найти цитируемый пост)
А эти наводящие вопросы, в данном конкретном случае - ни к чему не приведут. 
А вот это уже реально плохо для тебя...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 26.9.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Teleport @  26.9.2008,  18:22 Найти цитируемый пост)
bars80080 - вообще нельзя будет?

вообще нельзя будет. всё определяется сервером, его обойти нельзя, можно найти только брешь в защите. а показ содержимого директории наступает только в одном случае: если нет файла по умолчанию (т.е. index)
PM MAIL WWW   Вверх
Teleport
Дата 26.9.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



2 bars80080 - да, все ясно. Большое спасибо smile
Тему считаю закрытой. Всем спасибо за помощь smile

Это сообщение отредактировал(а) Teleport - 26.9.2008, 21:34


--------------------
user posted image
user posted image 
PM MAIL   Вверх
Rikas
Дата 26.1.2015, 05:40 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.12.2013

Репутация: нет
Всего: нет



Ответь любому "Учись, салага" - глядишь за умного сойдёшь. 
Цитата(source777 @ 26.9.2008,  10:51)
 то все кто потратил время на ответы в этой теме, сделали это зря... smile

Невероятно сколько времени потратил уважаемый, бесспорно, товарищ, на то, чтоб сказать топикстартеру, что угодно, лишь бы не объяснить/ответить ничего. smile 
Поразительно, сколько вообще в интернете встречается столь "умных" ответов. Вид себе поважнее и:"Читай мурзилку!!" "Юзай мануал", "гугл в помощь!!!". Наверное прирождённые профессионалы! Только до компа дотянулись и начали искусственный интеллект кодить, не меньше. Настолько ценные, что каждая "букаффка" специалиста столь недостижимого уровня страшных сумм стоит. И единственное, что могут посоветовать бесплатно - "гугл в помощь", "см. мануал", "учим матчасть". По сути каждый такой ответ означает "думай сам!". Было-бы совсем смешно, кабы не стало уже грустно...
 А у меня уважение к автору темы. Человек не боится признать, что знает не всё, и не боится задать вопрос. Молодца! 
Бывают, конечно, вопросы, которые улыбку вызывают. Есть ощущение, что некоторые нарочно пост@баться задают вопрос. Однако отвечающий и сам в состоянии фильтровать забавные вопросы, чтоб на тратить своё драгоценное, бесспорно, время в них...
 Конкретно в данном случае автор темы отнюдь не школьник, судя по разговору. Для того, чтоб разобраться досконально в столь сложном вопросе, как комплексная защита сайта, необходимо тьму материала перелопатить, понять, почуствовать если хотите. А у него заказ для фирмы. И рад бы изучить вопрос, да нету месяцев свободных подробно разобраться что к чему. А проект сдавать надо...
Здесь сообщение yurik_l "Только что проверил: ... выводит без изменений" больше смысла несёт, чем любые рассуждения потипу "ты должен сам понять... smile ". 
По теме не скажу ничего, сам не владею информацией настолько досконально, чтобы содержательный ответ дать. Пусть тема старая, автору уже и неактуально, однако не только автору могут помочь нормальные, содержательные ответы. Но не удержался уже на очередного "умника" наткнувшись. smile  Может день такой выдался...

ps А модераторам предлагаю все "ответы" перечисленного типа, и им подобные считать флудом. И за каждый из них, не количество оставленных сообщений автору плюсовать, а наказывать. И форум станет много чище...
PM MAIL   Вверх
whatisnot
Дата 26.1.2015, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



А к чему этот весь некчемный труд, если после  всего этого нигде не используется?

Данные пришедшие извне как параметры запроса раздела, страницы, это обычно уникальный идентификатор. Его достаточно привести к int и если не 0, можно делать запрос.

<a href="index.php?pshow=index">Главная</a><br>
<a href="index.php?pshow=vivod">Вывод на страницу</a><br>
<a href="index.php?pshow=contacts">Контакты</a><br>

Это бессымысленное. Какое преимущество дает такое значение переменных: index, vivod, contacts? Никакого. А вот если так:

<a href="index.php">Главная</a><br>
<a href="index.php?show">Вывод на страницу</a><br> //только упаси господь от жаргона, нет в английском vivod
<a href="index.php?contacts">Контакты</a><br>

что может стать и:

<a href="domain">Главная</a><br>
<a href="domain/show">Вывод на страницу</a><br> //только упаси господь от жаргона, нет в английском vivod
<a href="domain/contacts">Контакты</a><br>

еще имеет смысл. Имя ключа, это запрос соответствующего ресурса, наличе которого можно проверить поиском этого ключа в существующем. 
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1216 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.