2011-12-26 64 views
1

我使用一些用戶數據生成表單身份驗證票證,並使用標準的.net Api將其加密併發送給我的客戶端。除了一個小問題,一切都可以運作。如果我將身份驗證票中的0替換爲G和Z(大寫字母)之間的字母,它仍然有效 - 它解密正常,我從我的所有用戶數據以及身份驗證票據中獲得所有內容。這不應該發生嗎?即使auth ticket的小改動也會使解密不能正常工作?任何其他更改將確保票證不解密並將拋出異常。asp.net表單身份驗證票被篡改但仍然有效

+2

我猜票序列化爲十六進制字符,如果讀取代表一個有效的十六進制數字一個char(0 - 9,A - F),它會相應地進行轉換並將其添加到解密流中,如果它發現其他任何內容都會將其轉換爲0. – rene 2011-12-26 13:10:57

+0

Bang on !!你能「回答」這個,以便我可以將它標記爲答案嗎?萬分感謝!! – sash 2011-12-26 13:55:09

回答

3

我猜這張票被序列化爲十六進制字符,如果它讀取代表一個有效的十六進制字符(0 - 9,A - F)的字符,它將相應地轉換並將其添加到解密流中,如果它發現其他東西將其轉換爲0。

我並不是說這個現在它的實際工作...

+0

我檢查了 - 這實際上是如何工作的 - 謝謝。 – sash 2011-12-26 17:10:10

+0

你是從哪裏檢查的? – enashnash 2012-04-19 15:03:34

相關問題