2009-10-23 72 views
2

這可能是也可能不是一個編程問題,但我的網站的一兩個用戶有一些奇怪的字符串被插入到他們的地址欄中。IE地址欄和源代碼中的奇怪字符串

的地址應該是:文件夾的 http://URL/Couple/page.aspx

但偶爾同樣的事情變得: http://URL/(X(1)F(qHfgTf50ahMY47b-lnz3ovk89OA4AbMN4S-sYVZCgCULL)) /文件夾/頁的.aspx

字符串也是在行動現場像這樣:

<form name="aspnetForm" method="post" action="/**(X(1)F(qHfgTf50ahMY47b-lnz3ovk89OA4AbMN4S-sYVZCgCULL))**/<Page>.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm"> 

我沒有服務器/ IIS專家,所以請原諒,如果這是一個愚蠢的問題,但什麼是奇怪的字符串,我/我的客戶需要擔心?

+0

嘿,你沒有發佈真正的URL,你在網上發佈了一個會話ID讓所有人劫持:D –

+0

爲此歡呼...編輯sessionID只是雙重安全! – DomBat

回答

6

看起來您已將無Cookie會話設置爲在您的網絡配置中自動啓用。

如果用戶允許cookie,他們的sessionID將存儲在內存cookie中。如果他們不這樣做,ASP.Net會將sessionID推入URL中,並用於識別哪個用戶正在發出請求。你看到的奇怪的字符串是那些關閉cookies的人的sessionID。

這裏沒有什麼值得擔心的事情,儘管它會讓會話劫持變得更容易...雖然可能不會強調這一點。

希望它可以幫助...

1

的web.config檢查SessionState的節點設置。 無Cookie屬性會話狀態節點必須設置爲false如以下設置所示。

<sessionState mode="Off|InProc|StateServer|SQLServer" 
       cookieless="true|false" 
       timeout="number of minutes" 
       stateConnectionString="tcpip=server:port" 
       sqlConnectionString="sql connection string" 
       stateNetworkTimeout="number of seconds"/> 
1

對於會話ID被推送到無URL用戶的URL中,Paul是正確的。這對於人類用戶來說不是問題,但對於爬行您的網站以在搜索引擎中對您的網站進行索引和排名的漫遊器(最顯着的Googlebot蜘蛛)具有潛在的重大挑戰。

您的ASP.NET框架會將您的ASP.NET框架標識爲無cookie,這會導致一些302重定向從// URL/autocookiesupportdetect再到URL /(sessionID)/ folders ...此302重定向已經足夠糟糕了但是,更糟糕的是,Googlebot每次抓取您的網站時都會收到會話ID,並將每個網址與會話ID一起作爲重複頁面進行索引。這會損害Google每一頁使用URL中的會話ID進行抓取的網頁排名。

此修復程序會向您的網站添加一個定義文件,以將bot識別爲接受cookie,從而爲他們提供cookie(而不是cookieless)會話。然後,您不必要求您的訪問者啓用Cookie,並且您的漫遊器訪問者會很樂意在您的網址中看到沒有sessionID的網頁。