LINUX.ORG.RU

И опять про дурацкие браузеры


0

0

Итак, я уже понял, что опера недостойна называться браузером.

Теперь еще и с огнелисом проблема. Пилю, значит, я свою библиотечку (раз, два) и решил протестировать, как она будет работать на незащищенном протоколе.

Для Ъ: организую аутентификацию пользователя посредством «всплывающего» блока, в котором расположен iframe с формой ввода пароля/логина (через SSL). Чтобы фрейм красиво выравнивался по центру страницы, используется функция parent.function(), которая после загрузки фрейма определяет его размеры и правильно центрует Когда я вызываю этот фрейм с защищенной страницы, проблем нет, а вот при вызове с незащищенной возникает проблема: firefox ругается, что «доступ к элементам parent запрещен».

Это вообще что за беспредел? Для чего такую чушь устроили? И как с этим бороться? Неужели придется для незащищенных соединений перенаправлять всю страничку на защищенное (как я делал с самого начала), там проверять данные и, в случае успеха, перенаправлять обратно?

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

Это все я читал уже. Ладно, несовпадение доменов - теоретически, оно может привести к мифическим нарушениям безопасности (что это такое - я не знаю и не представляю, как можно нарушить таким образом безопасность). Но несовпадение протоколов внутри одного домена - полный бред. Как же взаимодействовать между элементами, работающими через защищенное и незащищенное соединение?

// кстати, родилась мысль: ведь POST-запрос, направленный по защищенному соединению, шифруется - так что можно сделать один скриптик и форму авторизации для защищенных соединений и другой, такой же, но с заменой https на http - для незащищенных. POST-запрос с паролем и логином отправлять по SSL-соединению. Проверю, может быть, будет работать. Правда, не уверен на 100%, что при таком соединении данные будут шифроваться.

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

>Но несовпадение протоколов внутри одного домена - полный бред. Как же взаимодействовать между элементами, работающими через защищенное и незащищенное соединение?

Вероятно подразумевается, что так быть не должно. Если https, то везде. Иначе это фикция.

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

Не пойму, что именно вам надо сделать, но если вам просто iframe надо посередине страницы поставить, нельзя ли, чтобы родитель сам этот iframe выравнивал, а не он просил родителя его выровнять?

>Ладно, несовпадение доменов - теоретически, оно может привести к мифическим нарушениям безопасности (что это такое - я не знаю и не представляю, как можно нарушить таким образом безопасность). Но несовпадение протоколов внутри одного домена - полный бред.

Ну это, в общем-то, понятно как:
1.У вас в iframe находятся логин и пароль, передаваемые по https. А iframe этот находится на странице, передаваемой по http.

2.Злоумышленник перехватывает страницу, передаваемую по http, и внедряет туда свой javascript, который будет воровать со страницы с https пароль. Или же подменять там в форме action, чтобы перенаправить POST-запрос. Или же хотя бы подменять там функции, вызываемые из этого iframe'а, чтобы что-нибудь сделать.

3.???

4.Убытки.

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

нельзя ли, чтобы родитель сам этот iframe выравнивал, а не он просил родителя его выровнять?

А как родитель узнает, что iframe загрузился и заполнился?

Злоумышленник перехватывает страницу, передаваемую по http, и внедряет туда свой javascript, который будет воровать со страницы с https пароль.

Как? Пароль/логин передаются по SSL со странички в iframe. Без SSL передаются только незащищенные данные и куки с текущим идентификатором сессии.

Теоретически, они могут подменить функции фрейма - но ведь фрейм и страничка расположены в одном и том же домене! Как можно в этом случае сделать подмену?

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

>Как? Пароль/логин передаются по SSL со странички в iframe. Без SSL передаются только незащищенные данные и куки с текущим идентификатором сессии.
Так Javascript'ом прямо на клиенте могли бы спереть, если бы не защита!

>Теоретически, они могут подменить функции фрейма - но ведь фрейм и страничка расположены в одном и том же домене! Как можно в этом случае сделать подмену?
Так мы же исходим из того, что «человек посередине» может прочитать и подменить какие угодно данные, кроме передаваемых по SSL, так, что его не заметят.

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

>Ладно, несовпадение доменов - теоретически, оно может привести к мифическим нарушениям безопасности (что это такое - я не знаю и не представляю, как можно нарушить таким образом безопасность).

Ты залогинен на сайте интернет-банка, на главной странице которого отображаются твои данные и кнопки для перевода денег. Хитрый человек вписывает URL этой страницы в невидимый iframe на своей.

Ты заходишь, а скрипты в фоне работают со страницей банка и делают всякую гадость.

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

Хитрый человек вписывает URL этой страницы в невидимый iframe на своей.

В том же домене?

Не надо мне тут бред нести...

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

Возможно так будет очевидней:
localhost:21 vsftpd
localhost:443 apache
localhost:80 nginx

все эти три программы не обязаны одно и то же показывать, но у них одно и то же доменное имя.

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

Ладно, со всеми этими файлохостингами, думаю, такое может стать возможным.

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