2012-09-05 32 views
1

我們有這樣的代碼上http://soAndSo.com/path/abc.aspx頁:HTML:從HTTP POST形式爲https

<form id="MainForm" name="MainForm" method="post" action="xyz.aspx"> 

現在我們需要用戶重定向到https://soAndSo.com/path/xyz.aspx。 問題是我們無法使用完整的URL,因爲我們需要在所有環境中使用相同的代碼。 任何想法如何使用html和javascript來實現這一點?

+4

不要這樣做。它擊敗了HTTPS的目的。 – SLaks

+1

它如何擊敗https的目的?如果表單數據是通過https發佈的,表單內容將如何被泄露? – recursive

+0

@recursive:攻擊者可以攔截原始頁面並將其提交到自己的網站。 – SLaks

回答

2

在純HTML中沒有辦法做到這一點。

使用客戶端JavaScript,您可以document.getElementById('MainForm').action = somevalue;其中somevalue根據location.href的值進行計算。

一般來說,用服務器端語言實現這一點會更好。

然而:數據的HTTP頁面中輸入的不安全。這將中轉通過HTTPS之前被固定,但包含表單HTTP網頁可以與在運輸被幹擾到的用戶(例如,使得在提交將被髮送到不同的服務器)。

您應該將當前承載文檔的HTTP URI與<form>重定向到HTTPS上該文檔的副本。