отправка формы с одного HTTPS на другой сайт HTTPS, вызывая предупреждение безопасности - PullRequest
1 голос
/ 16 октября 2010

Мне нужно опубликовать строку с сайта .NET на сайт Classic ASP, размещенный на одном сервере (в разных виртуальных каталогах).

https: //example.com/DOTNETSite/Sender.от aspx

до

https: //example.com/ClassicASP/SomeFolder/Target.asp

На странице Target.asp есть 3 способа обработки входящих данных:

  1. Форма сообщения
  2. Строка запроса
  3. Заголовки

Я не могу передать свои данные в строке запроса.так что этот вариант отсутствует.Я пытаюсь использовать метод Post form, создавая форму на стороне сервера и выплевывая код JavaScript для выполнения form.submit ().Но это заставляет интернет-обозревателя выдавать предупреждение безопасности для пользователя.Мы хотим избежать этого.Пожалуйста, дайте нам знать, как лучше всего преодолеть эту ситуацию.Спасибо за тонну.

1 Ответ

0 голосов
/ 17 октября 2010

Прямо сейчас вы делаете:

ваш сервер ----> ваш клиент / браузер ----> их сервер

Вместо этого вы должны использовать:

ваш сервер ----> ваш клиент / браузер ----> ваш сервер ----> их сервер

То есть (если это не было достаточно ясно), заставьте его отправить форму на ваш собственный сервер. Когда ваш сервер получает форму, он должен отправить ее на целевой сервер.

На базовом уровне это работает. Однако могут возникнуть проблемы, если предполагается, что пользователь вошел на второй сервер и т. Д.

Я попытаюсь проиллюстрировать пример на PHP:

Файл: form.html

<form action="send.php" method="post">
    ....
</form>

Файл: send.php

<?php
  $url='https://example.com/ClassicASP/SomeFolder/Target.asp';
  // create new cur connection
  $ch=curl_init();
  // tell curl target url
  curl_setopt($ch, CURLOPT_URL, $url);
  // tell curl we will be sending via POST
  curl_setopt($ch, CURLOPT_POST, true);
  // tell it not to validate ssl cert
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  // tell it where to get POST variables from
  curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); 
  // make the connection
  curl_exec($ch);
  // close connection
  curl_close($ch);
?>
...