Передача параметров формы через iframe с безопасным JavaScript? - PullRequest
0 голосов
/ 15 ноября 2010

Справочная информация: Я написал букмарклет (JavaScript), который добавляет iframe к текущей странице, которую вы просматриваете.Атрибут src этого iframe указывает на форму в моем приложении (rails).Мне нужно передать ключ в форму (из букмарклета), либо изменив одно из значений полей ввода, либо передав значение в качестве параметра в конце URL-адреса, вызывающего действие формы.

Я действительно не вижу способа, как сделать первое, а второе кажется катастрофой безопасности, ожидающей своего появления.Мне было интересно, какая лучшая практика будет здесь?

Ответы [ 3 ]

2 голосов
/ 15 ноября 2010

Добавление параметра строки запроса к URL-адресу кажется разумным, но вы правы - это влияет на безопасность. Это значение появится в истории просмотров пользователя и будет видно по незашифрованному HTTP (но не по HTTPS).

Существует еще один способ сделать это на основе Javascript, который еще не получил широкой поддержки, но стоит рассмотреть - window.postMessage. Это позволяет страницам в назначенных доменах отправлять и получать сообщения, используя знакомую модель, основанную на событиях. Смотри https://developer.mozilla.org/en/DOM/window.postMessage.

1 голос
/ 15 ноября 2010

Это звучит довольно похоже на фреймворк AJAX, который я сделал с помощью iFrames.Самый простой способ - заставить ваш букмарклет создать строку запроса и поместить ее в src iFrame.Если вам нужно что-то изменить, вы должны иметь возможность установить src в iFrame на «# param = value» и сделать так, чтобы страница в iFrame регистрировала событие onhashchange, чтобы справиться с ним (это было бы так, как вы могли бы сделать первое)
Таким образом, ваш код может быть:

var iframe = document.createElement('iframe');
iframe.src = "http://example.com/mypage?param1=value1&param2=value2";
document.body.appendChild(iframe);

и / или:

iframe.src = "#param1=value1";
// This in the iframe:
document.onhashchange = function() {
    // parse location.hash and process form
}
0 голосов
/ 18 ноября 2010

Несколько схем передают секреты в фрагменте URL-адреса, а затем, как и тогда, в начале загрузки страницы, сохраняют ее и устанавливают фрагмент как пустой.Я думаю, что webkeys делает это.

На странице веб-ключей смотрите, в частности,

При установке неосуществимого ключа разрешения в сегменте фрагмента получается https URL, который выглядит: https://www.example.com/app/#mhbqcmmva5ja3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...