[研究] web.config 的 customErrors 設定實際測試
2016-11-25
環境:Visual Studio 2015 with Update 3 + .NET 4.5 + WebForm
測試程式
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="SUM" OnClick="Button1_Click" /><br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
</div>
</form>
</body>
</html>
|
Default.aspx.cs
using System;
namespace WebApplication1
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int num1, num2, num3;
//Int32.TryParse(TextBox1.Text, out num1);
//Int32.TryParse(TextBox2.Text, out num2);
num1 = Convert.ToInt32(TextBox1.Text);
num2 = Convert.ToInt32(TextBox2.Text);
num3 = num1 + num2;
Label1.Text = num3.ToString();
}
}
} |
********************************************************************************
web.config,只摘要 customErrors 部分
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="Off" />
</system.web>
</configuration>
|
Off : 開發人員看細節
On : 不顯示詳細錯誤細節
RemoteOnly : 設定遠端看到的
(下圖) 遠端看到(一般使用者)、本機看到(開發維護人員)看到畫面
因為 Off,沒有客製畫面,大家都看到完整錯誤訊息。
********************************************************************************
測試:
1.變更 web.config 設定
2.輸入 1 和 x 去觸發錯誤
********************************************************************************
web.config,只摘要 customErrors 部分
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="On" />
</system.web>
</configuration>
|
(下圖) 遠端(一般使用者)、本機(開發維護人員)看到畫面
因為 On,表示有客製畫面,但是實際沒有設定客製錯誤訊息網頁。
********************************************************************************
web.config,只摘要 customErrors 部分
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
|
(下圖) 遠端(一般使用者)、本機(開發維護人員)看到畫面
因為 On,表示有客製畫面。
********************************************************************************
web.config,只摘要 customErrors 部分
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="RemoteOnly />
</system.web>
</configuration>
|
(下圖) 本機(開發維護人員)看到畫面
(下圖) 遠端(一般使用者)看到畫面
********************************************************************************
web.config,只摘要 customErrors 部分
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
|
(下圖) 本機(開發維護人員)看到畫面
(下圖) 遠端(一般使用者)看到畫面
更進階還可以這樣用
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors> |
(完)
相關
[研究] [ASP.NET] 詳細錯誤 vs 簡單錯誤 vs 客製化錯誤
http://shaurong.blogspot.com/2017/08/aspnet-vs-vs.html
[研究] web.config 的 customErrors 設定實測
http://shaurong.blogspot.com/2016/11/webconfig-customerrors.html
如何使用 Visual C# .NET 在 ASP.NET 中建立自訂的錯誤報告頁面
https://support.microsoft.com/zh-tw/kb/306355
ASP.NET Web 組態設定方針
https://msdn.microsoft.com/zh-tw/library/ff400235(v=vs.100).aspx
customErrors 項目 (ASP.NET 設定結構描述)
https://msdn.microsoft.com/zh-tw/library/h0hfz6fc(v=vs.100).aspx
Top 10 Application Security Vulnerabilities in Web.config Files - Part One
3 May 2007
http://www.codeproject.com/Articles/18625/Top-Application-Security-Vulnerabilities-in-Web
Top 10 Application Security Vulnerabilities in Web.config Files - Part Two
http://www.codeproject.com/Articles/18882/Top-Application-Security-Vulnerabilities-in-W