Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита файлов!
 
 автор: m@rchello   (28.12.2005 в 07:35)   письмо автору
 
 

Вот такая проблема! Есть файлы с расширением *pl, как можно их защетить чтоб они не отображались в браузере и их нельзя было скачать!!! Так как там хранятся имена и пароли юзеров!!! Возможно расширение на какое-то другое поменять надо??? Я понимаю что *pl не должен отображаться в браузере!! И на моей машине он не отображается а вот на сервере гдележит мой сайт они отображаются! И штацес там не работает!!!

   
 
 автор: Shorr Kan   (28.12.2005 в 08:29)   письмо автору
 
   для: m@rchello   (28.12.2005 в 07:35)
 

Т.е., вы не имеете доступа к .htaccess ?

   
 
 автор: LimP   (28.12.2005 в 09:12)   письмо автору
 
   для: Shorr Kan   (28.12.2005 в 08:29)
 

он и не заработает, пока вы его не сделаете самостоятельно.

   
 
 автор: LimP   (28.12.2005 в 09:13)   письмо автору
 
   для: LimP   (28.12.2005 в 09:12)
 

ищите в темах на форуме, как ставить htaccess своими руками

   
 
 автор: m@rchello   (28.12.2005 в 11:40)   письмо автору
 
   для: LimP   (28.12.2005 в 09:13)
 

НА серваке просто запрещён htaccess!!!

   
 
 автор: XPraptor   (28.12.2005 в 11:56)   письмо автору
 
   для: m@rchello   (28.12.2005 в 11:40)
 

Если расширение pl не указано как исполняемое PHP в настройках сервера, тогда никак вы не защитите файлы. А так можно пароль вшить в эти файлы, чтобы доступ по паролю был и при включении их в другие, этот пароль указывать, а из вне открытие приведет к редиректу на другую страницу.
ИМХО по другому никак наверное.

   
 
 автор: cheops   (28.12.2005 в 13:45)   письмо автору
 
   для: m@rchello   (28.12.2005 в 11:40)
 

Если бы был разрешёт .htaccess можно было бы воспользоваться следующим решением
<Files "*.pl"> 
  deny from all 
</Files>

но без него это будет практически невозможно сделать... ведь такого рода защита лежит на плечах Web-сервера.

   
 
 автор: Shorr Kan   (28.12.2005 в 13:51)   письмо автору
 
   для: cheops   (28.12.2005 в 13:45)
 

Тогда такой вариант - .php , и не забывать на первой и последней строках -
<?/*
и */?>.

То есть, если в одном файле - хранится пароль одного человека... а файл называется - по логину этого человека, то человек, имеющий логин qwerty , и пароль asdasd - будет записан в файле qwerty.php , а его содержимое:

<?/*
qwerty
*/
?>


и тогда:
<?function check(){
if(
file_exists("passwords/".$_POST['login'].".php")){
$file=file("passwords/".$_POST['login'].".php");
$password=trim($file[1]);
if(
$password==$_POST[password]){return true;}else{return false;}
}else{return 
false;}
}
//function
?>


Второй вариант:


<?/*qwerty*/?>

Тогда:
<?function check(){
if(
file_exists("passwords/".$_POST['login'].".php")){
$password=file_get_contents("passwords/".$_POST['login'].".php");
$password=str_replace("<?/*","",str_replace("/*?>","",$password));
if(
$password==$_POST[password]){return true;}else{return false;}
}else{return 
false;}
}
//function
?>


Я бы посоветовал второй вариант. Предварительно, недурно бы срезать точки и слэши в паролях.

   
 
 автор: m@rchello   (28.12.2005 в 15:22)   письмо автору
 
   для: Shorr Kan   (28.12.2005 в 13:51)
 

но у меня пароли всех юзеров хранятся в одном файле!!!

   
 
 автор: Shorr Kan   (28.12.2005 в 16:32)   письмо автору
 
   для: m@rchello   (28.12.2005 в 15:22)
 

Еще проще... тогда храните их так:

<?
$login
[]="login";$pass[]="pass";
$login[]="login1";$pass[]="pass1";
$login[]="login2";$pass[]="pass2";
?>


Потом функцией array_search - вы найдете соответствие и номер ключа. Тогда вообще никаких проблем.

   
 
 автор: Loki   (28.12.2005 в 17:20)   письмо автору
 
   для: Shorr Kan   (28.12.2005 в 16:32)
 

Можно еще упростить:)

<? 
$login
["login"]="pass"
$login["login1"]="pass1"
$login["login2"]="pass2"
?> 

Тогда получится

<?
if ($login[$_POST['login']]==$_POST['pass'])
?>

   
 
 автор: Shorr Kan   (28.12.2005 в 18:13)   письмо автору
 
   для: Loki   (28.12.2005 в 17:20)
 

А в таком случае надо осуществлять проверку на наличие $login[$_POST['login']] или в случае отсутствия элемента с подобным ключиком - он просто отфальсирует нас подальше?

   
 
 автор: m@rchello   (28.12.2005 в 18:38)   письмо автору
 
   для: Shorr Kan   (28.12.2005 в 16:32)
 

>Еще проще... тогда храните их так:
>

>&lt;?
>$login[]="login";$pass[]="pass";
>$login[]="login1";$pass[]="pass1";
>$login[]="login2";$pass[]="pass2";
>?>
>

>
>Потом функцией array_search - вы найдете соответствие и
>номер ключа. Тогда вообще никаких проблем.
Вот этот вариант мне больше подходит!!! Покрайней мере он мне просто больше понятен!! Спасяб!!! :-)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования