iFrame - brak możliwości modyfikacji. Jak rozwiązać problem?

0

Cześć!

Borykam się z pewnym problemem. Muszę wprowadzić kilka modyfikacji w formularzu który jest dodany do strony za pomocą skryptu. Skrypt ten dodaje formularz w ramce iFrame. Ramka pochodzi z innej domeny. Każda próba modyfikacji niestety kończy się błędem "Blocked a frame with origin from accessing a cross-origin frame". Czy ktoś może wie jak sobie poradzić z tego typu problemem? Dokładnie na czym mi zależy to możliwość dodania do "<body>" ramki kilku skryptów modyfikujących wygląd i działania formularza. Z góry dziękuję za pomoc.

3

Zabezpieczenie przed scamem, wyobraź sobie, że ktoś wchodzi do ciebie na stronę ty mu wyświetlasz facebooka, wywołujesz tam skrypt js i gościowi się pojawiają na tablicy jakieś duperele.

Albo centrujesz iframe w taki sposób, że jak gdzieś kliknie to kliknie na innej stronie przez tego iframe.

Blokuje się to tak, że się ustawia w nagłówkach http, żeby przeglądarka tej strony nie ładowała przez co przeglądarka, która chroni użytkownika widzi, że nie powinna czegoś udostępniać tego nie udostępnia.
Dla bezpieczeństwa, a ty nie możesz ingerować w cudzą przeglądarkę.

0

@Krispi One: A potem ma zostać tam czy dołączona do Twojej strony? Jak do Twojej strony to może zwyczajne pobranie i modyfikacja? Ale pewnie chcesz to wykonać tam? ;-D

5

Tego nie da się zrobić. Nawet kombinowanie z ustawieniami serwera strony zawierającego ramkę nic nie pomoże.

Jeżeli jednak strona z formularzem również należy do ciebie, to możesz przesyłać komunikaty pomiędzy właściwą stroną i stroną imieszczoną w iframe i w reakcji na nie podejmować określone działania. Patrz:

postMessage
window.addEventListener('message', ...

0

Dziękuje bardzo za bardzo szybkie odpowiedzi. W kwestii formularza, to pochodzi on z serwisu oferującego systemy CRM, każdy użytkownik dostaje dostęp do formularza, który można jedynie zmieniać pod względem wyglądu. Formularz służy do dodawania nowych informacji właśnie do tego systemu CRM. Chciałem go zaimplementować na stronę, i dostosować trochę pod siebie, ponieważ formularz znajduje się na wielu podstronach i dobrze by było np. przekazywać w polu opisu jakieś informacje typu z jakiej podstrony użytkownik wysłał zapytanie, aczkolwiek jeżeli by to bardzo mogło naruszyć bezpieczeństwo to też nie będę kombinował. Dziękuję za odpowiedzi, postaram się jeszcze przyjrzeć opcji "message", ale pewnie gdyby dołożył tego typu modyfikacje to istnieje niebezpieczeństwo że ktoś pogrzebie w kodzie i będzie chciał porobić cuda w systemie CRM?

0

Dlatego przed przetworzeniem poleceń otrzymanych przez postMessage trzeba sprawdzać, czy pochodzą z twoich własnych domen.
Same komunikaty też ktoś może sfałszować, ale na swoim własnym komputerze może i tak zrobić cokolwiek z uruchomionym na stronie JS-em, więc nie jest to jakieś specjalne zagrożenie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1