私の MVC3 アプリケーションの Global.asax の Application_Error() メソッドには、システム エラー通知を送信する次のコードがあります。
protected void Application_Error()
{
string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
string userAgent = string.Empty;
string currentPageUrl = "";
if (Request.ServerVariables["HTTPS"].ToString() == "")
{
currentPageUrl = Request.ServerVariables["SERVER_PROTOCOL"].ToString().ToLower().Substring(0, 4).ToString() + "://" + Request.ServerVariables["SERVER_NAME"].ToString() + ":" + Request.ServerVariables["SERVER_PORT"].ToString() + Request.ServerVariables["SCRIPT_NAME"].ToString();
}
else
{
currentPageUrl = Request.ServerVariables["SERVER_PROTOCOL"].ToString().ToLower().Substring(0, 5).ToString() + "://" + Request.ServerVariables["SERVER_NAME"].ToString() + ":" + Request.ServerVariables["SERVER_PORT"].ToString() + Request.ServerVariables["SCRIPT_NAME"].ToString();
}
if (!string.IsNullOrEmpty(ip))
{
string[] ipRange = ip.Split(',');
string trueIP = ipRange[0];
}
else
{
ip = Request.ServerVariables["REMOTE_ADDR"];
}
string urlReferrer = string.Empty;
try
{
urlReferrer = Request.UrlReferrer.ToString();
}
catch (Exception ex)
{
// do nothing
}
try
{
// get user Agent
userAgent = System.Net.Dns.GetHostEntry(ip).HostName; //.GetHostByAddress(ip).HostName;
}
catch (Exception ex)
{
userAgent = Request.UserAgent;
// do nothing
}
string userDetails = "IP Address: " + ip +
"<br /><br />Url Referrer: " + urlReferrer
+ "<br /><br />Current Page: " + currentPageUrl + "<br /><br />";
try
{
Exception exception = Server.GetLastError();
Response.Clear();
Controllers.ControllerBaseClass.SendSystemNotification("System Error", userDetails + exception.Message + "<br /><br />" + exception.StackTrace);
}
catch (Exception ex)
{
Controllers.ControllerBaseClass.SendSystemNotification("System Error", userDetails + ex.Message + "<br /><br />" + ex.StackTrace);
}
}
これまでのところ、次のような試行時に、ほとんどのルート エラーの通知を正常に送信しています。
www.mysite.com/phpadmin/somephpfile.php
それに一致するルートがないため、ファイルが見つからないという例外がスローされます。罰金。
送信された電子メールには、私のサイトにある試行された現在のページと、「/[無効なパス]/」のコントローラー パスが見つからなかったか、IController を実装していないことを示す関連テキストが含まれています。
しかし最近、現在のページがサーバー上に存在しないという攻撃が見られるようになりました。
すなわち。 www.etorrent.co.kr:80/js/filter.js
現在のページがサーバー上のページと同じように表示されない理由と、追加のセキュリティ機能を追加する必要があるかどうか、または何かを見逃しているかどうかに興味がありますか?
ありがとう。