私のプロジェクトのためにサーバーを稼働させています。クライアントは、起動時にWebサービスとして実行されるUpdateチェック機能を呼び出します。これらの要求はファイルに記録されます。WebService(ASP.NET)の "REMOTE_ADDR"からの奇妙なクライアントIPアドレス
私がファイルにログするには、以下の機能を使用し:
Public Sub Log(ByVal Message As String, ByVal Level As LogEntryLevel, ByVal Additional As Boolean)
Dim base As String = "C:\SERVER\log\"
Dim fileName As String = Date.Now.ToString("dd-MM-yyyy") & ".log"
Dim newString As String = ""
If Not Additional Then
If System.IO.File.Exists(base + fileName) Then newString &= vbNewLine
newString &= Date.Now.ToString("[dd/MM/yyyy HH:mm:ss.fff ") & Level.ToString & "] " & Message
Else
newString &= Message
End If
My.Computer.FileSystem.WriteAllText(base + fileName, newString, True)
End Sub
私はクライアントのIPアドレスを取得するには、次の機能を使用します。
Public Function getIP() As String
Dim ip As String
ip = Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ip = String.Empty Then
ip = Context.Request.ServerVariables("REMOTE_ADDR")
End If
Return ip
End Function
次のようにログメッセージが構築されています
Log(String.Format("Client {0} invoked CheckForUpdate with [{1}]", getIP, ver), LogEntryLevel.INFO, False)
これまでにこれが記録されました:
[11-12-2011 22:10:20.730 INFO] Client 10.0.1.4, 127.0.0.1 invoked CheckForUpdate with [0.5]
O_Oこれはどのように返されますか?これは正常ですか?これは可能ですか?リクエストはどのようにしてローカルホスト(127.0.0.1)から発信され、同時にリモートIPアドレスから発信されますか?サーバーがハッキングされましたか?これは不具合ですか?誰かがこれを私に説明してもらえますか?
- これはXtremeVBTalk.comにいくつかの時間前に投稿されました:http://www.xtremevbtalk.com/showthread.php?t=322915誰も答えていないので、私は再びここでそれを求めています。
これは、クライアントが行うべきではないことをクライアントが実行しようとしていたことを意味しますか?私は指定された正規表現に一致する特定のIPアドレスからのさらなる要求を拒否する能力を持っています。このIPアドレスを持つクライアントがこのメソッドを呼び出すのを防ぐ必要がありますか? – user1122122
もし、CheckForUpdateを危険なものに使うことができなければ、彼らは便宜的にプログラムで実行しようとしている可能性が高いです。理想的には、すべてのGETおよびPOSTリクエストの詳細なログを保持しておくことで、アプリケーションの整合性に悪影響を及ぼす可能性があるかどうかを判断するために、どのデータを送信しているかを正確に把握できます。ちょっとした調査の後、10.0.1.4がユーザーのDHCP設定の結果かもしれないと思われます。それは完全に無害かもしれませんが、それは匿名のままにしようとする試みかもしれません。 – ranksrejoined
問題の日のISSログファイルを検索し、自分のログファイルのタイムスタンプでISSログファイルには何もありません。約30秒後に1つがありますが、IPは異なります。 – user1122122