LINUX.ORG.RU

Ответ на: комментарий от dissident

Еще более конкретно:

Например я хочу сделать как-то так:

href=javascript:open('google.com').getElementById("dunno").text="bla"

И идея такая что кликая в такую ссылку открывается google.com с введенным в поле поиска текстом "bla".

Как такое сделать?

В яваскрипте я вообще ноль. :(

dissident ★★
() автор топика
Ответ на: комментарий от dissident

Если ты не в состоянии сформулировать какое "такое" делалось в твоём примере, то сформулируй чего тебе самому-то надо. Почему бы не сделать это традиционно, сервер-сайдно?

anonymous
()
Ответ на: комментарий от anonymous

Ну я же формулирую.

Я хочу открыть на своей странице иметь линк на http://www.google.com который откроет этот самый http://www.google.com (все равно в том же самом окне или в новом) и впишет в поле поиска например "javascript rulz". Другими словами мой линк это будет линк на google с вписанной в поле поиска фразой.

В реальной задаче не гугл, но принцип тот же.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

Открыть гугл выходит одним из двух способов:

javascript:document.location.href='http://google.com' javascript:window.open('http://google.com')

А как теперь вписать в поле поиска "javascript rulz"?

Я ничего противозаконного не делаю, у меня есть login/password юзера, я от его имени сделал сервер-сайдно все что надо было сделать и даю ему линк на сделанное, теперь я просто хочу чтобы он в этом самом сделанном не вводил user/pass, а просто тыркнул в login, потому что я ему линк на сделанное дам с уже заполненными полями user/pass.

Вот и все.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

> Я хочу открыть на своей странице иметь линк на http://www.google.com который откроет этот самый http:...

Ну так и сделай линк на скрипт, который будет редиректить запросы туда. А на случай, если вдруг клиент доверчивый попался, сделай обработчик onclick, делающий то же самое. А что бы выполнять какой-то код из УРЛ - такого ни в одном стандарте нет и непонятно нафига так делать вообще.

anonymous
()
Ответ на: комментарий от anonymous

> Ну так и сделай линк на скрипт, который будет редиректить
> запросы туда.
Этакое прокси (типо как будто я гугл)? Не хочу. Я хочу просто заполнить user/pass, пусть юзер сам тыкает в логин и больше я его комп своими грязными руками тыкать не хочу. Я вообще его комп своими грязными руками тыкать не хочу. Просто хочу ему дать линк с заполненными двумя полями.

> А на случай, если вдруг клиент доверчивый попался, сделай
> обработчик onclick, делающий то же самое.
А можно подробнее? Не в смысле код, а в смысле не понял идеи.

dissident ★★
() автор топика
Ответ на: комментарий от anonymous

Блин... Я не хочу ничего делать, выполнять какие-бы то ни было queries. Я хочу просто вписать два input'а! Юзер пусть кликает или не кликает и изменяет эти input'ы себе как ему нравится. Я за него их заполнил, дальше уже он сам.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

Если инпуты передаются гетом - то подойдёт всё, что описано выше. Если постом - то разве что проксить.

anonymous
()
Ответ на: комментарий от anonymous

> Если инпуты передаются гетом - то подойдёт всё, что описано выше.
Я не хочу посылать инпуты (ни гетом ни постом)!!!

Я хочу их просто яваскриптом заполнить. Юзер тиснет в сабмит и их вышлет.

Я реально видел похожее поведение - я отдавал кому-то какой-то html и этому кому-то не нравился мой html - этот кто-то просто взял и сложил этакий линк который открыл мой html и поменять немного внешний вид в нем. И все это сделал одним огромным линком.

dissident ★★
() автор топика
Ответ на: комментарий от anonymous

>А что бы выполнять какой-то код из УРЛ - такого ни в одном стандарте нет

да ну? протокол javascript:, следует полагать, не существует?

anonymous
()
Ответ на: комментарий от dissident

скажи честно: ты хочешь, чтобы за тебя написали код. потому что как именно исполнить javascript из href, я уже показал. дельше надо только сам скрипт написать.

anonymous
()
Ответ на: комментарий от anonymous

Ну почти. ;)

Просто я вообще в яваскрипте ноль.

Хватило бы шаблона.. Например так работает довольно неплохо:

javascript:window.open('http://google.com'; window.onload=alert('oh boy');

А вот так ерунда (alert выполняется до загрузки гугла:

javascript:document.location.href='http://google.com'; window.onload=alert('oh boy');

Насчет заполнить два инпута я бы уже разобрался.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

естественно, до. загрузка страницы — процесс асинхронный. если тебе надо именно заменять текущую страницу, а не открывать новую вкладку/окно… лучше забудь об этой идее.

anonymous
()
Ответ на: комментарий от dissident

потому что ты не в курсе, как это всё работает. кто тебе сказал, что оно успело догрузиццо? я же написал: процесс асинхронный. более того: загрузка вообще не обязана начинаться, пока твой скрипт не отработал. в итоге — ты открыл пустое окно. поискал в нём форму. не нашёл (что логично). показал алерт. поехала загрузка. грок?

anonymous
()
Ответ на: комментарий от anonymous

> более того: загрузка вообще не обязана начинаться, пока твой скрипт
> не отработал
Если не обязана, то правильно сделать то что я хочу вообще нельзя (в смысле без хаков и краков)... Но я помню как сегодня как кто-то линком изменил внешний вид моего html'а. Или это и были хаки и краки? Если да то Б-г с ним, просто зачем голову морочить?

PS Что любопытно такой тест не работает:

javascript:w=window.open('http://www.signs.pl/html/e/form.php'); setTimeout('w.close()', 500);

dissident ★★
() автор топика
Ответ на: комментарий от dissident

>Но я помню как сегодня как кто-то линком изменил внешний вид моего html'а. Или это и были хаки и краки?

а кто его знает? линка со страницей-то не показано.

>Что любопытно такой тест не работает:

что любопытно — отчего все пихают в setTimeout() идиотский eval()? это и тормозно, и неверно.

вот так, чисто поржать: javascript:void(function(){var w=window.open('http://www.google.com.ua/');setTimeout(function(){w.close();}, 500);}());

anonymous
()
Ответ на: комментарий от anonymous

А так почему не але (тоже уже на самом деле чисто поржать):

javascript:void(function(){var w=window.open('http://www.signs.pl/html/e/form.php');setTimeout(function(){aler t(w.document.URL);}, 1000);}());

Вообще из предыдуших ответов можно сделать вывод что правильный способ это сделать POST userid/login сервер-сайд, всосать ответ и скормить юзеру ответ, позаменяв в нем relative links на absolute links.

http://forum.navy.dp.ua/files/thumbs/t_vista_891.jpg

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

dissident ★★
() автор топика
Ответ на: комментарий от dissident

>Вообще из предыдуших ответов можно сделать вывод что правильный способ это сделать POST userid/login сервер-сайд, всосать ответ и скормить юзеру ответ, позаменяв в нем relative links на absolute links.

правильный способ — не делать извратов. всё остальное — извраты. не предусмотрено в *html механизмов взаимоействия с другими сайтами. что, в принципе, верно.

>А так почему не але (тоже уже на самом деле чисто поржать):

а потому что security restrictions. скрипт из одного домена не имеет права ни читать, ни писать в переменные скрипта с другого домена.

anonymous
()
Ответ на: комментарий от anonymous

> а потому что security restrictions. скрипт из одного домена не имеет
> права ни читать, ни писать в переменные скрипта с другого домена.
Ясно. Двойная просьба о пароль, раз чтобы мой шыт сделал свое дело, два чтобы посмотреть что же такое сделал мой шыт: resolved as not fixable.

Но блин как-то же товарищ это делал с моим html'ом... Так интереса ради.. Почему я тогда был такой тупой и не проанализировал... Спросил товарища, может как проснется - вспомнит, правда было это X лет назад.. :(

dissident ★★
() автор топика
Ответ на: комментарий от dissident

>правда было это X лет назад

это одно из клчючевых. security restrictions со временем выросли. плюс — на самом деле способов есть очень много. я ж сказал — без конкретного показа можно выдумывать их до посинения. например, запастить букмарклет в адресбар на открытой странице — вполне можно, так букмарклеты и работают.

anonymous
()
Ответ на: комментарий от dissident

> resolved as not fixable.
Ну то есть совет с proxy это конечно решение, но ну его в пень. Это мое прокси должно будет вечно проксить а не только один раз (потому что сессия) пока юзер не уйдет с сайта на который имел неосторожность через мой шыт зайти. И вообще это какой-то анальный секс.

dissident ★★
() автор топика
Ответ на: комментарий от anonymous

Конкретный показ: http://cocaine.one.pl/~muf/junk/test/fill_forms.php

Всю функциональность отрезал - демострирует только саму идею (надо вводить два раза тот же userid/password).

Кстати, что любопытно из этих двух форм:

1. https://portal.cuny.edu/cms/id/cuny/documents/informationpage/006373.htm
2. https://portal.cuny.edu/portal/site/cuny/login/index.jsp

получаем разные результаты, но любопытно не это а то каким образом: не из реферера, не из hidden полей, а из параметров сессии и того что было открыто как предыдущее.

Чтобы в этом удостовериться можно:

A: Открыть 2, следом в другом табе 1, следом ввести test222/test222
B. Открыть 2, следом ввести test222/test222

Какой-то черезжопный способ у ребят...

Про bookmarklet спасибо - читаю.

dissident ★★
() автор топика
Ответ на: комментарий от dissident

>Конкретный показ

я про тпоказ того урла, что модифицировал твой html.

>Кстати, что любопытно из этих двух форм:

домен тот же самый → видно кукиши.

anonymous
()
Ответ на: комментарий от anonymous

> домен тот же самый → видно кукиши.
Кукиши, да. Но одноразовые, в пределах сессии. И JSESSIONID еще какой-то.

Сам подход какой-то черезжопный. Получается что то что я делают зависит от того в какой последовательности я это делаю. А если я одновременно хотел бы делать две разные вещи то что...

dissident ★★
() автор топика
Ответ на: комментарий от anonymous

>То что ты просишь называется XSS.

В культурном обществе за XSS бьют по лицу, так что предостерегаю автора темы.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.