2011-03-10 86 views
0

我們有一個系統可以記錄我們網站上發生的事件。可以重寫HttpContext.Current.Request.Url.AbsoluteUri嗎?

目前,它記錄了所有與正在發生的事情的描述的事件,並在

發現頁面的屬性的參考HttpContext.Current.Request.Url.AbsoluteUri

我剛剛發現了一個HttpContext.Current.Request.Url.AbsoluteUri從我們不擁有的服務器「http://ya.ru/Default.aspx」

此表中還記錄了線程ID(Threading.Thread.CurrentThread.ManagedThreadId )(它被記錄爲線程1)和一個sessionID(HttpContext.Current.Session.SessionID)。

這個未經請求的服務器如何在我們的網站上運行的東西,這是否意味着他們有權訪問我們的代碼,或者你可以合法地重寫HttpContext.Current.Request.Url.AbsoluteUri?如果不是,可以放棄HttpContext.Current?

除了運行一些數據庫查詢,他們似乎也在運行一些用戶控件!

它似乎是一個俄語搜索引擎,但我不知道他們是如何覆蓋我們的頁面參數。

下面是設置代碼是爲記錄日常的PAGE參數:

  Dim threadID As Integer 
      If Not HttpContext.Current Is Nothing Then 
       Page = HttpContext.Current.Request.Url.AbsoluteUri ' & "/" & HttpContext.Current.Request.RawUrl '& HttpContext.Current.Request.Path 
       Integer.TryParse(Threading.Thread.CurrentThread.ManagedThreadId, threadID) 
       If Not HttpContext.Current.Session Is Nothing Then 
        Try 
         Session = HttpContext.Current.Session.SessionID 
        Catch 
         Session = "empty" 
        End Try 
       End If 
      Else 
       Page = MyPageName 
      End If 

任何想法?

回答

1

服務器設置是否處理傳遞給它的任何主機頭?放到命令行並運行該命令,將123.123.123.123更改爲您的服務器的IP,並將/Page.aspx更改爲您嘗試訪問的任何頁面,但保持原樣。

telnet 123.123.123.123 80 
GET /Page.aspx HTTP/1.1 
HOST: www.example.com 

檢查日誌,如果你看到www.example.com則IIS被設定與處理指向它的任何請求「默認網站」。

+0

好的 - 所以我可以看到這個工作,但1)這是什麼實現,2)它是一個安全缺陷? – digiguru 2011-03-10 16:06:17

+0

我不知道他們爲什麼要這麼做。我最好的猜測是它的bot配置錯誤或者代理服務器崩潰。 – 2011-03-10 16:17:15

+0

關於保護它 - 我猜我無法做任何事情,因爲它是標準的http端口,而用戶無法從端口80控制服務器? – digiguru 2011-03-10 16:34:18