Как проверить ссылку на работоспособнось?
Вопрос в следующем: Должна получиться полноценная ссылка, если пользователь введет правельное кодовое слово начнется скачивание! А если пользователь ввел неправельное кодовое слово, то должна отдельно загрузиться небольшая страница и сказать что кодовое слово неверно!
Есть: 1) Есть кнопка "скачать" 2) Текстовое поле - "Text1" т.е. пользователь вводит кодовое слово в "Text1" нажимает кнопку "скачать", если все правельно будет предложенно скачать файл, если кодовое слово неправельно, будет ошибка 404 (Неправельная ссылка, файл не существует)! Вопрос: Как после нажатия кнопки "скачать" проверить ссылку на правильность, если правельная то качать файл, если нет, то загрузить отдельное окошко со страницей - Ошибка "кодовое слово неверно". Причем метод проверки не должен содержать правельное кодовое слово! Метод проверки должен заранее после нажатия кнопки "скачать" определить что ссылка не выдаст ошибку 404! Например такой скрипт, как его довести до поставленной задачи: Кодовое_слово - download http://www.sayt.ru/Кодовое_слово/files.mp3 <script language="JavaScript"> var link1="http://www.sayt.ru/"; var files="/files.mp3"; function test1(form) { if (form.text1.value == "") alert("Кодовое слово!") else location.href=link1+form.text1.value+files; } </script> <form name="first"> Введите:<br> <input type="text" name="text1" maxlength="6" size="15"> <input type="button" name="button1" value="скачать" onClick="test1(this.form)"> </form> |
Подскажите, плиз....
|
Попробуйте попробовать способ, описанный тут: http://www.machaon.ru/digest/www_boa...ages/9193.html
|
Что-то не работает! Есть еще предложения! Плиз...
|
Такого рода защита на JavaScript будет совершенно не действенна. Решайте серверными силами, если это возможно.
|
Цитата:
|
Treekci,
Потому что все равно она раскрывает пользователю ссылку на конечный файл. |
Если скрипт будет проверять, существует ли указанный файл, как он расскроет ссылку?
|
Цитата:
эта ссылка каким-то боразом(пускай даже по защмщенным каналам) передается в браузер пользователя.с этого момента можно зыбыть о секретности этой информации.любой смышленный пользователь при необходимости получит эту ссылку в чистом виде, как бы вы ни старались. а вот, если ссылка останется на сервере, и будет проверятся только на нем, то он ее не узнает, если конечно не взломает сервер(что гораздо сложнее) |
А каким образом "правильная ссылка" собралась в браузер попадать? =)
|
Treekci,
может быть потому что вы решили ее проверить средствами браузера?) |
Ну, если введенное слово будет верным, то да, он получит верную ссылку =) Иным путём он этого не добьётся...
Я на днях посмотрю и скажу, что я родить хочу =) Я себе представляю, что я хочу сделать, но из-за малого опыта пока не могу написать верный скрипт... Я посмотрю, как это делается и покажу свои глупые идеи =) |
Все правильно! Браузер никак не узнает правильную ссылку пока не введешь правельное кодовое слово, а иначе запрос по ссылке будет выдовать ошибку 404 "Страница или файл не существует"! Можно узнать только методом подбора!
|
Вопрос из зала: что вы называете серверными силами? А то окажется потом, что мои идеи и есть эти страшные силы...
Предлагаю даже сделать интересней: я создам страницу использующую данный скрипт, а вы все проведете её тестирование =) Ваша цель: назвать мне название песни, которую я выложу =) Только, попрошу, без взломов сервера и метода потбора(если с подбором еще можно будет справится, то от взлома уж мне никак). А с моей страницей извращайтесь как можете =) |
что-то я потерял нить обсуждения когда писал пост про возможность взлома клиентского скрипта.
сейчас перечитал, иполучается, что фига лысого это получится путем взлома именно клиентского скрипта. встречный вопрос из зала:а откуда вообще предполагается получение пользователем кодового слова для взлома? --добавлено-- попробовал поигратся по вашей теме с объектом XMLHttpRequest , но ничего толкового не получил. во перывх осел жутко матерится на мои попытки нестандартного использования.что и понятно(я пытался использовать xmlhttp.status до полного получения файла.) короче, жутко получается, и не кросбрузерно. под серверными же силами я подразумеваю, что ваш скрипт отправит запрос на серверный скрипт(например написанный на ПХП), и серверный скрипт сам проверит существование файла, и вернет результат проверки |
Вот, я так подумал, а потом встал другой вопрос: а если человек начнет и тут колдовать, и скачает этот пхп-файл? Или можно от этого его защитить?
|
у вас ошибочное мнение о работе серверных скриптов.
в штатном режиме их скачать невозможно. когда вы вбиваете в адресную строку ссылку на скрипт, вы получаете не сам серверный скрипт, а результат его работы.сам же скрипт скачать невозможно(не взломав сервер,либо если вы допустили ошибку при настройке сервера) |
Просто я с этим пока не сталкивался, поэтому точно не знаю, как это происходит...
|
Хоть как-то можно это сделать??? Или все так сложно!
|
Так, задам тогда два вопроса по теме:
var fso = new ActiveXObject("Scripting.FileSystemObject") var fileobj = fso.GetFile(filepath) var myfile = fileobj.OpenAsTextStream(mode) Таким Макаром пытаюсь открыть файл. Ослик матерится, что вредоносный скрипт. если скрипт на сервере, он будет материться? И есть запросить строку несуществующего txt-файла, что произойдет? (хотел сам проверить всё это, да времени никак нет). |
во первых ActiveXObject есть только в ослике.
и этот объект по своей сути не предназначен для работы в браузере. поэтому осел и ругается во вторых этот объект предназначен для работы с локальной(пользователя) файловой системой, и навряд ли им можно работаь по сети Вывод: не годится, из-за своей сути и некросбраузерности |
Тогда логичный вопрос: как прочитать первую строку файла X.txt на сервере?
|
кхм.
если сервер ваш, то с помощью xmlhttprequest скачиваем весь файл, и берем из него первую строчку. это единственный кросбраузерный способ |
Цитата:
|
Часовой пояс GMT +3, время: 12:24. |