2011-12-13 22 views
6

Mam bardzo prostą formę HTML, która używa POST, a jego akcja wywołuje skrypt PHP na moim serwerze sieciowym.Formularz HTML POST Cross Domain

Oto kicker ... html zawierający formularz nie jest hostowany na tym samym serwerze i istnieje w innej domenie. Nie martwiąc się o to pytanie z wyjaśnieniem, należy to zrobić ze względów biznesowych. Muszą istnieć w tych konkretnych domenach.

Po przesłaniu formularza uzyskujemy prawidłowy dostęp do skryptu PHP, ale wtedy próbuję wyciągnąć dane POST i go nie ma. Myślę, że jest to problem związany z bezpieczeństwem, ponieważ tymczasowo wstawiłem formularz na tym samym serwerze co PHP i działało dobrze.

Czy jest jakiś sposób, że mogę to wykorzystać do pracy w dwóch oddzielnych domenach? Z góry dziękuję.

Edit:

kod PHP (emailTemplate.php):

<?php 
var_dump($_POST); 
?> 

HTML Postać:

<form name="emailForm" id="emailForm" method="post" onsubmit="return beforeSubmit();" action="https://***.***.com/emailTemplate.php"> 
    <textarea rows="15" cols="75" id="myHtmlText" name="myHtmlText"></textarea> 
    <input type="text" id="toAddr" name="toAddr" size="60"/> 
    <input type="text" id="fromAddr" name="fromAddr" size="60"/> 
    <input type="text" id="subjectLine" name="subjectLine" size="60"/> 
    <input type="submit" name="Submit" value="Email Letter"> 
</form> 
+0

Teoretycznie to, co robisz, nie powinno powodować żadnych problemów. Wygląda na to, że (a) wystąpił błąd w skrypcie PHP otrzymującym dane POST lub w formularzu internetowym wysyłającym go, lub w twoim skrypcie PHP lub konfiguracji serwera jest jakiś środek bezpieczeństwa, który blokuje wpis. Niestety, najlepsze, co możemy zrobić, to spekulować, chyba że możesz opublikować część swojego kodu. – Aaron

+0

@Aaron Dodałem kod, jeśli to w ogóle pomaga. Dzięki. – jcmitch

+0

Wydaje się działać, jeśli Firefox, ale nie IE. IE daje ostrzeżenie XSS. – jcmitch

Odpowiedz

5

Jeśli masz tylko problem w IE, filtr XSS może ich być winnym. This article zawiera szczegóły dotyczące wyłączania go.

Aby całkowicie uniknąć tego problemu, spróbuj opublikować swój formularz w skrypcie PHP na swoim serwerze, aw tym skrypcie utwórz sesję cURL, która opublikuje formularz w drugim skrypcie. Transakcja XSS odbywa się niezależnie od przeglądarki klienta, zapobiegając tym restrykcjom związanym z przeglądarką.

+0

Dzięki! Pracował świetnie! – jcmitch

+0

Nie zadziała, jeśli wynik zawiera jakiekolwiek względne adresy URL. Klient zinterpretuje te adresy URL względem Twojej domeny, a nie domeny zdalnej. – Barmar