PDA

Просмотр полной версии : Вопрос по .htaccess наверное)


FeraS
17.02.2008, 23:15
Всем превед)

Задача такая: есть на сайте файл js, надо сделать так, чтобы код, вставленный на сайт (<script language="javascript" src="адрес к тому файлу"></script>) мог нормально работать, а если к файлу обращаются напрямую, то хрен бы че выдавалось, т.е. типо надо запретить для скачивания файл :)
Вот как организовать такое?)

diehard
17.02.2008, 23:21
FeraS
И как же браузер его будет скачивать для выполнения, если ему хрен че будет выдаваться? Если хочешь запрятать js, то пользуйся вот этими вещами: www.iframe.in

Spyder
17.02.2008, 23:33
<files script.js>
deny from all
</files>

freddi
17.02.2008, 23:49
Spyder, в этом случае не будет работать

код, вставленный на сайт (<script language="javascript" src="адрес к тому файлу"></script>)

Spyder
17.02.2008, 23:56
Так скорее всего нет.
Но если запрашивать файл будет пшп скрипт, то работать должно
Типа
file_get_contents("script.js");

Хотя не уверен, не тестил

D0S
17.02.2008, 23:56
Как нибудь так... :rolleyes:


<?php
include("blablabla.js");
?>

И это убрать

<script language="javascript" src="адрес к тому файлу"></script>


Хз вообщем. :cool:

big_BRAT
18.02.2008, 00:01
как вариант но оч. напряжно
<script language="javascript" src="http://123.freehost.com/java.js"></script>
другими словами забрасываешь этот файл на какой то бесплатный хостинг и там прописываешь
allow from _you_site_ip_
deny from all
в таком слычае не кто не сможет обратится к этому файлу кроме твоего сайта

но, все равно браузер сохранит файл при заходе на страницу, и его можно будет выцепить из темпов, ну или Файл-Сохранить как....

Macro
18.02.2008, 00:01
Все просто. Когда скрипт вызывается из страницы - то есть referer, иначе его нет. Соответственно, надо сделать
addtype application/x-httpd-php .js
И в файле .js написать

<?
if(!isset($_SERVER['HTTP_REFERER']))
{echo('dcument.write("lol")');}
else
{echo('НУЖНЫЙ СКРИПТ');}
?>


Либо, если совсем параноик, то нужно сделать по принципу капчи с помощью кук и сессий. Но грамотный чел все равно увидит твой скрипт :))

Piflit
18.02.2008, 00:07
big_BRAT js выполняется на стороне клиента, а не сервера
Macro конечно, все можно подделать...

FeraS зачем тебе это?) из всех возможные решений в голову приходит только обфускация

FeraS
18.02.2008, 01:11
Macro
Не, чет не канает, а может криворукий)

Piflit
Нада)

Isis
18.02.2008, 01:37
Macro, и что твой скрипт даст?)
Перейду я с античата сразу на тот скрипт ...реферер есть

SSB1981
19.02.2008, 18:02
Вот наваял находу:

Страница где вставляем js:



<?
session_start();
$_SESSION['otdai']='true';
?>

<html>
<head>
<title>Hello</title>
</head>
<body>
бла-бла-бла
<script language="javascript" src="script.js"></script>
</body>
</html>




файл .htaccess



AddType application/x-httpd-php .js




файл script.js:



<?php

session_start();
if(isset($_SESSION['otdai']))
{
echo 'здесь скрипт';
}
else
{
echo 'XREN VAM';
}
?>




PS: может чего не учёл времени было мало...

Isis
19.02.2008, 18:08
$_SESSION['otdai']=true;

session_register("otdai");

SSB1981
19.02.2008, 18:16
Вариант :-)))))))

FeraS
22.02.2008, 12:51
XREN VAM нормально выводится, а вот js код не хочет появляться

Isis
22.02.2008, 13:19
<?php
session_start();
$ses = 'otdai';
$otdai = 'true';
session_register($ses);
?>
<html>
<head>
<title>Hello</title>
</head>
<body>
бла-бла-бла
<script type="text/javascript" src="script.js"></script>
</body>
</html>

script.js

<?php
session_start();
if(isset($_SESSION['otdai']) && $_SESSION['otdai'] == 'true')
{
echo 'alert(/xss/)';
}
else
{
echo 'XREN VAM';
}
?>

Spyder
22.02.2008, 13:23
FeraS, у тебя этот js вставляется в пшп скрипт или просто в html?

Isis
22.02.2008, 13:24
Spyder, сверху написано как это все вставляется

Spyder
22.02.2008, 13:25
всё равно у Исиса пшп скрипт, можно создать .htaccess прописав
<files script.js>
deny from all
</files>
и потом просто file_get_contents()

FeraS
22.02.2008, 13:27
Spyder
html

Isis
А в чем разница между session_start() и @session_start()?

Isis
22.02.2008, 13:29
FeraS, =\ я дал рабочий код

Isis
А в чем разница между session_start() и @session_start()?

Эм..я изменил не толкьо это..вставь скрипт и посмотри что изменено :)

А разница в том что @ всего лишь скрывает ошибку, если такая была бы

Isis
22.02.2008, 13:30
всё равно у Исиса пшп скрипт, можно создать .htaccess прописав
<files script.js>
deny from all
</files>
и потом просто file_get_contents()
Да?
А я файрбагом смогу посмотреть содержимое script.js

FeraS
22.02.2008, 14:00
Все равно не пашет. Наверное потому что я это в Dle пытаюсь сделать :)

SSB1981
22.02.2008, 14:03
XREN VAM нормально выводится, а вот js код не хочет появляться
У тебя на хостинге работает .htaccess ?
А конкретнее директива "AddType" в .htaccess ?
Только что проверил код всё - работает тип-топ!

Isis
22.02.2008, 14:22
Я тоже проверил на шелле, все пашет...
.htaccess
AddType application/x-httpd-php .js
Не забыл?

FeraS
22.02.2008, 14:24
Все. Разобрался. В js коде кавычки мешали :)

SSB1981
22.02.2008, 14:52
Все. Разобрался. В js коде кавычки мешали
Молодец блин...
Ладно с кем не бывает.
Мне кажется что ты отключил нафиг сообщения об ошибках...