2011-02-23 65 views
3

幫助我的朋友與他的舊ASP網站遇到問題,所以我想拋出這個看看我能否得到一些幫助。經典的ASP表單郵件與敏感字段

該網站基本上需要POST數據到它在做精細另一頁。問題在於它需要將用戶名/密碼發佈到接收頁面,並且該網站目前將其隱藏在隱藏的字段中,因爲您可以在源代碼中看到它,所以顯然沒有好處。

你怎麼可以拉在ASP頁上的數據,而無需它隱藏在一個輸入字段?我知道它可以作爲一個變量存儲,但是我不能POST它,如果我把這個變量放在一個輸入值字段中,它會顯示在源文件中。

任何幫助,將不勝感激。

謝謝!

+0

爲了防止任何人對此感興趣,我最終做了什麼,因爲我不得不使用POST來到另一個站點。我們與他們一起開發了一個Web服務,讓我們通過SSL將所有敏感數據發送給它。作爲回報,我會得到一個一次性使用令牌,我會發布到該網站,以便他們識別我的請求並檢索在早期的Web服務調用中傳遞給它們的值。這工作非常順利,我覺得這是一個相當安全的方式來做到這一點。 – markiyanm 2012-01-10 20:55:54

回答

4

需要張貼的用戶名/密碼來接收頁面

不,它不需要。 :)

如果兩個頁面的同一部位的一部分,使用Session對象。

如果兩個頁面在不同的地點,事情棘手,但這個想法是相似的。我猜這不適合你,但是如果是這樣,看看OAuth。 (例如,當你在這裏登錄,您使用的身份驗證從其他網站,但計算器絕對看不到該網站的密碼。同樣的想法。)

+0

我希望!不幸的是,他們將數據發佈到另一個使用POST數據進行驗證/驗證的外部站點。 – markiyanm 2011-02-23 03:43:19

+3

哦。所以這是你的用戶/通行證,你想隱藏你的用戶?只要你有你要發送的所有數據,就在服務器端發送HTTP請求。有一個標準的COM組件可用於此:MSXML.XmlHttpRequest,如果我記得正確。 – tangentstorm 2011-02-23 03:49:57

+0

實際上,最簡單的組件是Microsoft.XMLHTTP(看這裏:http://support.microsoft.com/kb/290591) – 2011-02-24 09:05:57

0

創建一個數據庫表,看起來像

uniqueidentifier SessionId 
varchar   Username 
varchar   Password 

商店會話Id中的Cookie與Response.Cookies

在JavaScript中的cookie獲取會話ID,併發送一個Ajax請求該會從使用的SessionID數據庫的用戶名和密碼,並在JSON輸出值的頁面。用javascript將值附加到隱藏字段。您仍然可以從收到表單文章的頁面上的隱藏字段中獲取值,但如果用戶查看頁面源,則只會顯示類似<input type="hidden" id="username" name="username" value="DefaultUserNameValue" />的內容。該值將使用JavaScript來動態分配,這對用戶是不可見的。

+0

爲什麼downvote? – smartcaveman 2011-02-23 08:04:04

+0

對用戶不可見?錯誤。只需使用Firebug在最新的源代碼或任何工具達到峯值的交通和突發!用戶名和密碼是你的。 – 2011-02-23 11:13:25

+0

是的,它是可破解的。但是,您可以通過堅持使用AJAX進行POST並通過在服務器端進一步驗證http請求來防止用戶以未經授權的方式執行此腳本。這不是一個完整的解決方案,而是將敏感數據存儲在服務器端會話中並提供從Web客戶端訪問該數據的機制的基礎。另外,作者並沒有表達安全擔憂,他們擔心有人會使用Firebug並分析JavaScript,但他們會將敏感值留在顯而易見的地方。 – smartcaveman 2011-02-23 13:47:20