|
|
|
| А возможно ли сделать так, чтобы пользователь, который смотрит мой сайт, на одной из страничек не мог просмотреть код JavaScript, но чтобы он выполнялся ??? | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 08:37)
| | Есть программы шифрования кода. Наберите в Гугле html guard или html crypt. Исходный код на странице виден не будет. Но от особо продвинутых эти проги все-равно не спасут, насколько я понимаю... | |
|
|
|
|
|
|
|
для: coloboc66
(30.08.2006 в 09:32)
| | Я вижу только ShareWare версии, а бесплатных нет...( Может кто-нибудь кинет HTMLGuard??? | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 10:59)
| | все это баловство! Вы действительно делаете уникальный продукт нуждающийся в защите? | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 11:03)
| | ДА | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 11:05)
| | Хотя бы киньте сылку с бесплатной версией программы. | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 11:05)
| | а вы юморист! может тогда не стоит его в сеть выкладывать? указанные программы просто делают код менее читабельным. Если ваш проект уникален, то сразу найдется множество человек, которые приведут код в нормальное состояние + коментарии напишут.
----
а вот представьте, что разработчики упомянутых прог тоже считают их уникальными и денег за их использование хотят получить ... | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 11:11)
| | http://astalavista.us/ | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 11:12)
| | Большое спасибо | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 08:37)
| | Нужно AJAXом подгрузить нужный код, даже HTML можно, и он будет выполнятся но исходника не видно будет | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 12:08)
| | может пример приведете? | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 12:20)
| |
document.getElementById("div1").innerHTML=То что пришло посредством AJAX
.....
<body>
<div id="div1">
</div>
</body>
|
| |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 12:37)
| | не мог просмотреть код JavaScript | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 12:57)
| | Ну так то что придёт от AJAX и будет содержать JS который не желателен к показу. А JS который нужен для работы с AJAX не нужно секретить он и так всем известен.
вот что можно например прислать с помощью AJAX и запихнуть его внутрь дива
<script>
function SuperSecret() {
....
}
</script>
<a href="#" onClick="SuperSecret()">Секрет</a>
|
И исходника функции SuperSecret() не будет видно | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 13:07)
| | КРУТО !!! | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 13:16)
| | Если я правильно понял, то:
<div id="divl">
//то, что мы хотим скрыть
</div>
|
??? | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 13:31)
| | >Если я правильно понял, то:
>
><div id="divl">
>//то, что мы хотим скрыть
></div>
>
|
>???
Да, только оно туда пишется не сразу. После того как страница уже загружена содержимое дива переписывается тем что получено от AJAX.
При просмотре исходника юзер будет видеть по прежнему <div id="div1"></div> и больше ничего, а на экране будет видна загруженная через AJAX страница. | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 13:07)
| | Смотрите как тут делать, смотрим исходник, обана вот тут написано куда скрипт обращаеться за javascript ом, дайка я адресок скопирую, и напрямую его открою да получу исходный код хехе, думаю идея понятна)))
P.S. скрипт на javascript или другом клиентском языке скрыть нельзя так как его юзер по любому себе на комп качает, а что он качает то он может посмотреть)))
для таких целей серверные языки существуют!!! | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.08.2006 в 13:35)
| | Допустим сервер кодирует скрипт, а клиентский компьютер его раскодирует и выполнит. Через блокнот скрипт уже не посмотришь... Хоть какая-то защита.... | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 13:40)
| | JavaScript это не PHP и не ASP это "дополнение" к ним и альтернативы нет, а безопасность нужна каждому... | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 13:41)
| | непонял, почему не посмотришь....?! | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.08.2006 в 13:44)
| | Допустим сервер кодирует скрипт, а клиентский компьютер его раскодирует
как? функцие тогоже javascript? | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.08.2006 в 13:44)
| | .... делать нужные запросы на ajax! php их обрабатывает, на выходите обыных html который мы вставляем.... | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.08.2006 в 13:44)
| | Выше прочтите...я совсем уже запутался....ExtraBrain разъесни!!! | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 13:48)
| | >>Нужно AJAXом подгрузить нужный код, даже HTML можно, и он будет выполнятся но исходника не видно будет
>>Ну так то что придёт от AJAX и будет содержать JS который не желателен к показу
AJAX это джаваскрипт + php. я так понимаю, чтобы что-то пришло нужно что-то послать => указать адрес, а зная адрес можно с него скачать скрипт.
----
<div id="divl">
//то, что мы хотим скрыть
</div>
|
естественно работать не будет. | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 13:51)
| | мешанина.....
может кто даст рабочую ссылку на простой пример с AJAX - сразу ясно все будет. | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 13:53)
| | Очень не оптимизированный код...
Сама страничка
<?
header("Content-type : text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HELLO AJAX</title>
<script language="javascript">
var req;
function loadDoc(url) {
url = url +'?name=' + document.forms.frm.name.value;
// для "родного" XMLHttpRequest
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
// для версии с ActiveX
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
function processReqChange() {
// только пр состоянии "complete"
if (req.readyState == 4) {
// для статуса "OK"
if (req.status == 200) {
// здесь идут всякии штуки с полученным ответом
document.getElementById('answer').innerHTML=req.responseText
} else {
alert("Не удалось получить данные =(\n" +
req.statusText);
}
}
}
</script>
</head>
<body>
<table border="1">
<tr>
<td>
<form name=frm>
<input type=text name=name><br>
<input type=button value="Send" onclick="loadDoc('handler_hello.php')">
</td>
<td width="100" valign="top">
<div id="answer">Здесь Будет ответ =)</div>
</td>
</tr>
</table>
</body>
</html>
|
Обработчик(handler_hello.php)
<?
header("Content-type : text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
echo "Привет,".$_GET['name'];
?>
|
| |
|
|
|
|
|
|
|
для: CrazyAngel
(30.08.2006 в 14:00)
| | что я из этого увижу если сохраню себе такую страницу? | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 14:07)
| | http://www.extrabrain.kiev.ua/chessgame.php?rezhim=2&id=163&sid=1721893172
Короче, сходите сюда. Там вы попадёте в чат. В чате время сообщения и некоторые сообщения выделены синим цветом. Попробуйте отыскать в исходнике каким способом осуществляется изменение цвета. Если найдёте представьте этот кусочек кода сюда. | |
|
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 14:17)
| | Нет, это обвязка Аяксовская, а содержимого самого чата вместе с тегами расскраски там нет. Вот пусть умные хацкеры и поищут, если они такие умные :-) | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 14:17)
| |
<div id="textchat" style="BACKGROUND-COLOR:#E0E0D6"><center><b style="color:#C00">Загрузка чата</b></center></div>
|
Пока чат загружается мы видим вот это. После загрузки оно заменяется на содержимое чата которого в исходниках как раз и не видно. В исходниках по прежнему видать
<div id="textchat" style="BACKGROUND-COLOR:#E0E0D6"><center><b style="color:#C00">Загрузка чата</b></center></div>
|
| |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 14:35)
| | верю. глубоко лезть не стал - искать дырки не моя работа.
но солидарен с автор: coloboc66 (30.08.2006 в 14:27) | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 14:11)
| | /extrachat.php ну сюда вроде запрос... дальше ищем все GET параметры, все которые беруться и все... только долго и муторно | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.08.2006 в 14:59)
| | При чём тут параметры? Весь вопрос состоит в том легко ли юзверю посмотреть содержимое obj.innerHTML? Если сможет то увидит что там , если нет - то нет. Лично я не знаю как это сделать пользователю смотрящему чужую страницу в которой этот самый obj.innerHTML был перезагружен Аяксом. | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 15:13)
| | во какая мысль в голову пришла: вы скрываете данные из б.д. , но непосредственно код javascript виден.
вот если бы было так:
<html>
<div>
some_func()
</div>
</html>
а в результате виден чат, то это другое дело. речь ведь шла о зашите кода.... | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 15:18)
| | Опять двадцать пять. Чат это только пример того что не видно данных. В чате это данные переписки из базы. Но если нужно было бы скрывать что-то, то можно было бы скрыть точно также и это что-то, в том числе и JavaScript. Просто те скрипты что нужно скрыть пишутся не в хедере, а впариваются аяксом прямо в див. Что ещё не понятно?
<script>
function SuperSecret() {
....
}
</script>
<a href="#" onClick="SuperSecret()">Секрет</a>
|
Вот это всё можно запихнуть аяксом внутрь дива и оно будет работать, а видно его не будет. | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 14:11)
| | to ExtraBrain & all-all-all
Идём по вашей ссылке:
http://www.extrabrain.kiev.ua/chessgame.php?rezhim=2&id=163&sid=1721893172
В адресной строке браузера (IE) вводим:
javascript:alert(frames[0].document.getElementById('textchat').innerHTML)
и нажимаем Enter :))))
Не скажу, что это было просто,
часика полтора я про(мучал)ся ))),
но я и далеко не кулль хацкер. | |
|
|
|
|
|
|
|
для: RMW
(30.08.2006 в 18:01)
| | Ну чтож, молодец. Значит не катит сия фишка :-( | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 18:08)
| | вот вот, посто днем небыло времени, а ночью я бы сам искал это) | |
|
|
|
|
|
|
|
для: RMW
(30.08.2006 в 18:01)
| | RMW: метод правильный. А ещё можно взять Proxomitron или хотя бы GreenBrowser / MyIE / Maxthon , где есть внедрение скриптов, и выполнять скрипты внутри страницы.
Но интересно, что ещё никто не попытался запустить подгруженный в Аяксе скрипт и не убедился, что так он работать не будет :)) .
См. "AJAX и внедренные <script> ": | |
|
|
|
|
|
|
|
для: 12345
(30.08.2006 в 18:44)
| | ExtraBrain : Это занятие то же, что изобретение вечного двигателя, за той лишь разницей, что закон сохранения энергии - закон природы, в котором пытаются усомниться, а способ расшифровки скрипта все производители программных защит вкладывают в продукт, поэтому скрипт доступен по определению.
(Надёжнее часть алгоритма исполнять на сервере. Пока его не взломают.) | |
|
|
|
|
|
|
|
для: 12345
(30.08.2006 в 18:44)
| |
<html>
<head>
<script type="text/javascript">
var s="Function added !!! <scr"+"ipt defer> function s(){ alert('Ura !!!');}</scr"+"ipt>";
function ins_() {
document.body.insertAdjacentHTML("beforeEnd",s);
}
</script>
</head>
<body>
<input type="button" onclick="ins_()" value="Add function s()"/><br/>
<input type="button" onclick="s()" value="Test function s()"/><br/>
</body>
</html>
|
Не работает говорите. А как же это ? Или переменную s нельзя из Аякса загрузить? | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 18:54)
| | (В упор не вижу тут Аякса.) Почитайте ту тему, в общем. Решение, конечно есть. Данные загрузить можно в XML, выполнить - нет. Загружаем данные и выполняем их скриптом страницы. | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 13:53)
| |
<html>
<head>
<title>test1</title>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<script>
function Zagruzka() {
obj=document.getElementById('div1');
obj.innerHTML='<table border="1"><tr><td>1111</td><td>2222</td></tr></table>';
}
</script>
</head>
<body onLoad="Zagruzka()">
<div id="div1">
</div>
</body>
</html>
|
На экране видим табличку а в исходниках
Вот так. Только то что запихивается в obj.innerHTML здесь пррописано явно, а нужно его через AJAX доставать с сервера. | |
|
|
|
|
|
|
|
для: ExtraBrain
(30.08.2006 в 14:00)
| | >нужно его через AJAX
как будет выглядить запрос? (в файле php) и будет ли пользователь видеть строку запроса в отдаваемом файле? | |
|
|
|
|
|
|
|
для: AlexSol
(30.08.2006 в 13:51)
| | Я понял что html тут роли не играет...ДА.... | |
|
|
|
|
|
|
|
для: RadjaxteN
(30.08.2006 в 13:54)
| | Ну так то, что приходит с помощью аякса с сервера, все-равно предварительно обрабатывается серверным языком, а он и так скрыт. Короче- по определению клиентский код скрыть невозможно. Единственный путь максимально спрятать его от непродвинутых пользователей- закодировать с помощью упомянутых выше программ. Еще как-то с помощью iframe прячут, но опять же- достать код знающий человек сможет. | |
|
|
|
|
|
|
|
для: coloboc66
(30.08.2006 в 14:27)
| | Есть такой кодировщик кода, он кодирует так. Никто ничего не поймёт и ни у кого не возникнет желание возиться с раскодировкой.
<SCRIPT LANGUAGE= "JavaScript">
<!--
function Decode(){var temp="",i,c=0,out="";var str="1061!1086!1088!1086!1096!1080!1081! 32!1089!1087!1086!1089!1086!1073!32 !1076!1083!1103!32!1089!1082!1088!1 099!1090!1080!1103!32!1082!1086!107 6!1072!";l=str.length;while(c<=str.length-1){while(str.charAt(c)!='!')temp=temp+str.charAt(c++);c++;out=out+String.fromCharCode(temp);temp="";}document.write(out);} Decode();
</SCRIPT>
|
| |
|
|
|
|
|
|
|
для: Владимир22
(30.08.2006 в 19:15)
| | ...А у кого возникнет, он добавит несколько символов: :)
<SCRIPT>
function Decode(){var temp="",i,c=0,out="";var str="1061!1086!1088!1086!1096!1080!1081! 32!1089!1087!1086!1089!1086!1073!32 !1076!1083!1103!32!1089!1082!1088!1 099!1090!1080!1103!32!1082!1086!107 6!1072!";l=str.length;while(c<=str.length-1){while(str.charAt(c)!='!')temp=temp+str.charAt(c++);c++;out=out+String.fromCharCode(temp);temp="";}document.write("<xmp>"+out);} Decode();
</SCRIPT> | |
|
|
|
|
|
|
|
для: 12345
(30.08.2006 в 20:00)
| | =) | |
|
|
|