Forum Webscript.Ru
		Программирование => Perl => Тема начата: Evgeny от 05 Июля 2002, 11:44:34
		
			
			- 
				Привет всем. 
Подскажите пожалуйста, есть ли какое-нибудь стандартное решение следующей проблемы: 
Допустим cgi-скрипт для общего пользования имеет имя http://my_adress.com/dbview/script.cgi 
Файл данных mydata.txt для этого скрипта лежит в этом же каталоге и соответственно всем пользователям должно быть разрешено читать этот файл. Но тогда пользователь набирает в адресной строке http://my_adress.com/dbview/mydata.txt и получает этот файл. Нехорошо. 
Есть ли какое-нибудь решение кроме того, чтобы сохраниять фйлы данных в неподконтрольные web-серверу каталоги.
Спасибо.
			 
			
			- 
				Вообще от настройки сервера зависит... Но в большинстве случаев достаточно для файла mydata.txt  выставить права "600", твой скрипт будет его нормально читать и писать в него, а из броузера его никто не откроет.
Другой вариант, более универсальный - запрети доступ к этому файлу в .htaccess
			 
			
			- 
				И еще, у многих отстойных хостеров, которые не дают использовать .htaccess, можно сделать имя файла данных, начинающимся с точки - никому постороннему сервер его не отдаст :)
В общем, вариантов много.
			 
			
			- 
				600 не работает, скрипт не может его открыть, "нет прав" говорит.
Файл с именем, где вначале точка стоит, отдал мне сервер.
Осталось .htaccess.
Чего в нём писать то надо?
			 
			
			- 
				
    Order allow,deny
    Deny from all
Запретит все *.txt
			 
			
			- 
				
 
Order allow,deny 
Deny from all 
 
Запретит все *.txt
Не запрещает... :(
Проверь, может ты ошибся где-то в коде, я тут ничего пойму.
			 
			
			- 
				а не проще этот файл данных положить в каталог, который через веб недоступен?
			
 
			
			- 
				
а не проще этот файл данных положить в каталог, который через веб недоступен?
Физически проще, но тогда уже теряется логика. Хорошо, когда всё упорядочено, каталоги ведь для того и существуют...
			 
			
			- 
				
600 не работает, скрипт не может его открыть, "нет прав" говорит. 
Ну значит так настроили :(
 
Order allow,deny 
Deny from all 
 
Запретит все *.txt
Ничего подобного!
 
deny from all 
- для всех txt-файлов
или
deny from all 
- для конкретного файла
А "Order" в таком простом случае ничего не дает.
			 
			
			- 
				
 
deny from all 
 
- для всех txt-файлов 
или 
 
deny from all 
 
- для конкретного файла 
Есть! Наконец заработало!
А чем отличаются директивы Files и FilesMatch ?
А что ещё в этот .htaccess писать можно. Про пароли знаю.
Где можно об этом почитать?
			 
			
			- 
				
Где можно об этом почитать?
Например, начни с http://www.host.ru/art/0007.html и далее по ссылкам.
			 
			
			- 
				
Есть! Наконец заработало! 
Заметил неточность: первый мой вариант должен заканчиваться не на
а на
			 
			
			- 
				
А чем отличаются директивы Files и FilesMatch ?
Если в двух словах: и та и другая директива устанавливает соответствие для файлов. Примеры:
 - конкретный файл
 - все txt-файлы (кстати, в твоем случае, это лучше)
 - то же самое, только с использованием регулярных выражений. Однако, если нужны регулярные выражения рекомендуется использовать FilesMatch (больше они ни чем не отличаются):
 - то же самое
Где можно об этом почитать?
Только что отвечал:
http://forums.webscript.ru/showthread.php?s=&threadid=6729&msgnum=2