2025年4月7日 星期一

[研究]系統使用有漏洞之舊版 DataTables 1.10.15 ( jquery.datatables 1.10.15) 版元件之處理

[研究]系統使用有漏洞之舊版 DataTables 1.10.15 ( jquery.datatables 1.10.15) 版元件之處理

2025-04-07

********************************************************************************

AWVS (Acunetix Web Application Security Scanner) 掃描發現

DataTables Prototype Pollution Vulnerability

Severity:High

Reported by module:/deepscan/javascript_library_audit_deepscan.js

Description:Affected versions of this package are vulnerable to Prototype Pollution. https://snyk.io/vuln/SNYK-JS-DATATABLESNET-598806

Impact

Recommendation

References

Affected items

  • Web Server
    • Details
    • datatables v1.10.15-1.10.15
    • Request headers

********************************************************************************



DataTables Improper Neutralization of Input During Web Page Generation ('Cross-siteScripting') Vulnerability

Severity:Medium

Reported by module:/deepscan/javascript_library_audit_deepscan.js

Description

This affects the package datatables.net before 1.11.3. If an array is passed to the HTML escape entities function it wouldnot have its contents escaped.

Impact

Recommendation

References

Affected items

  • Web Server
    • Details
    • datatables v1.10.15-1.10.15
    • Request headers

********************************************************************************

FireFox

********************************************************************************

【研究處理】


發現 packages.config 中有


<package id="jquery.datatables" version="1.10.15" targetFramework="net48" />  

下圖,jquery.databases 1.10.15 已經是 NuGet 提供的最新版


jquery.databases 官方下載,目前最新似乎 2.2.2 版
下圖,目前最新似乎 2.2.2 版

DataTables/DataTables: Tables plug-in for jQuery
https://github.com/DataTables/DataTables/tags
下圖,GitHub似乎最新 1.10.21


********************************************************************************

ASP.NET, WebForm, 下面哪個套件會需要 jquery.datatables 1.10.15 套件?

AngleSharp 0.17.1
AngleSharp.Css 0.17.0
Antlr 3.5.0.2
Aspose.Cells 25.3.0
Autofac 8.2.0
Autofac.WebApi2 6.1.1
bootstrap 3.4.1
BouncyCastle.Cryptography 2.5.1
ByteSize 2.1.2
ClosedXML 0.104.2
ClosedXML.Parser 1.3.0
DocumentFormat.OpenXml 3.3.0
DocumentFormat.OpenXml.Framework 3.3.0
DotNetZip 1.16.0
EFUtilities 1.0.2
elmah 1.2.2
elmah.corelibrary 1.2.2
EntityFramework 6.5.1
Enums.NET 5.0.0
ExcelDataReader 3.7.0
ExcelDataReader.DataSet 3.7.0
ExcelNumberFormat 1.1.0
ExtendedNumerics.BigDecimal 3000.0.3.40
FastMember 1.5.0
FastMember.Signed 1.5.0
FreeDataExports 1.1.12
html5-shiv 3.7.3
HtmlSanitizer 9.0.876
Irony 1.5.3
Irony.NetCore 1.1.11
JetBrains.Annotations 2024.3.0
jQuery 3.7.1
jQuery.UI.Combined 1.14.1
js-cookie 2.2.1
LinqKit 1.3.8
LinqKit.Core 1.2.8
LogicExtensions 0.0.3
MailKit 4.11.0
MathNet.Numerics.Signed 5.0.0
Microsoft.AspNet.FriendlyUrls 1.0.2
Microsoft.AspNet.FriendlyUrls.Core 1.0.2
Microsoft.AspNet.FriendlyUrls.Core.zh-Hant 1.0.2
Microsoft.AspNet.Identity.Core 2.2.4
Microsoft.AspNet.Identity.Core.zh-Hant 2.2.4
Microsoft.AspNet.Identity.EntityFramework 2.2.4
Microsoft.AspNet.Identity.EntityFramework.zh-Hant 2.2.4
Microsoft.AspNet.Identity.Owin 2.2.4
Microsoft.AspNet.Identity.Owin.zh-Hant 2.2.4
Microsoft.AspNet.Providers.Core 2.0.0
Microsoft.AspNet.Providers.Core.zh-Hant 2.0.0
Microsoft.AspNet.ScriptManager.MSAjax 5.0.0
Microsoft.AspNet.ScriptManager.WebForms 5.0.0
Microsoft.AspNet.Web.Optimization 1.1.3
Microsoft.AspNet.Web.Optimization.WebForms 1.1.3
Microsoft.AspNet.Web.Optimization.zh-Hant 1.1.3
Microsoft.AspNet.WebApi 5.3.0
Microsoft.AspNet.WebApi.Client 6.0.0
Microsoft.AspNet.WebApi.Client.zh-Hant 6.0.0
Microsoft.AspNet.WebApi.Core 5.3.0
Microsoft.AspNet.WebApi.Core.zh-Hant 5.3.0
Microsoft.AspNet.WebApi.WebHost 5.3.0
Microsoft.AspNet.WebApi.WebHost.zh-Hant 5.3.0
Microsoft.Bcl.AsyncInterfaces 9.0.3
Microsoft.Bcl.Build 1.0.21
Microsoft.Bcl.Cryptography 9.0.3
Microsoft.Bcl.HashCode 6.0.0
Microsoft.CSharp 4.7.0
Microsoft.Extensions.DependencyInjection 9.0.3
Microsoft.Extensions.DependencyInjection.Abstractions 9.0.3
Microsoft.IO.RecyclableMemoryStream 3.0.1
Microsoft.NETCore.Platforms 7.0.4
Microsoft.Owin 4.2.2
Microsoft.Owin.Host.SystemWeb 4.2.2
Microsoft.Owin.Security 4.2.2
Microsoft.Owin.Security.Cookies 4.2.2
Microsoft.Owin.Security.OAuth 4.2.2
Microsoft.Web.Infrastructure 2.0.0
Microsoft.Win32.Primitives 4.3.0
MimeKit 4.11.0
Modernizr 2.8.3
Moment.js 2.30.1
NETStandard.Library 2.0.3
Newtonsoft.Json 13.0.3
Newtonsoft.Json.Bson 1.0.3
NLog 5.4.0
NLog.Schema 5.4.0
NPOI 2.7.3
Npoi.Mapper 6.2.2
Oracle.ManagedDataAccess 23.7.0
Owin 1.0
popper.js 1.16.1
Portable.BouncyCastle 1.9.0
RBush 4.0.0
Respond 1.4.2
RestSharp 106.15.0
SendGrid 9.29.3
SendGrid.CSharp.HTTP.Client 3.4.12
SendGrid.SmtpApi 1.4.6
SharpZipLib 1.4.2
SixLabors.Fonts 1.0.1
SixLabors.ImageSharp 3.1.7
starkbank-ecdsa 1.3.3
Swashbuckle 5.6.0
Swashbuckle.Core 5.6.0
System.AppContext 4.3.0
System.Buffers 4.6.1
System.Collections 4.3.0
System.Collections.Concurrent 4.3.0
System.Collections.Immutable 9.0.3
System.Configuration.ConfigurationManager 9.0.3
System.Console 4.3.1
System.Diagnostics.Debug 4.3.0
System.Diagnostics.DiagnosticSource 9.0.3
System.Diagnostics.Tools 4.3.0
System.Diagnostics.Tracing 4.3.0
System.Formats.Asn1 9.0.3
System.Globalization 4.3.0
System.Globalization.Calendars 4.3.0
System.IO 4.3.0
System.IO.Compression 4.3.0
System.IO.Compression.ZipFile 4.3.0
System.IO.FileSystem 4.3.0
System.IO.FileSystem.Primitives 4.3.0
System.IO.Packaging 9.0.3
System.IO.Pipelines 9.0.3
System.IO.UnmanagedMemoryStream 4.3.0
System.Linq 4.3.0
System.Linq.Dynamic.Core 1.6.0.2
System.Linq.Expressions 4.3.0
System.Linq.Queryable 4.3.0
System.Memory 4.6.2
System.Net.Http 4.3.4
System.Net.Primitives 4.3.1
System.Net.Sockets 4.3.0
System.Numerics.Vectors 4.6.1
System.ObjectModel 4.3.0
System.Reflection 4.3.0
System.Reflection.Emit.ILGeneration 4.7.0
System.Reflection.Emit.Lightweight 4.7.0
System.Reflection.Extensions 4.3.0
System.Reflection.Primitives 4.3.0
System.Resources.ResourceManager 4.3.0
System.Runtime 4.3.1
System.Runtime.CompilerServices.Unsafe 6.1.1
System.Runtime.Extensions 4.3.1
System.Runtime.Handles 4.3.0
System.Runtime.InteropServices 4.3.0
System.Runtime.InteropServices.RuntimeInformation 4.3.0
System.Runtime.Numerics 4.3.0
System.Security.AccessControl 6.0.1
System.Security.Cryptography.Algorithms 4.3.1
System.Security.Cryptography.Encoding 4.3.0
System.Security.Cryptography.Pkcs 9.0.3
System.Security.Cryptography.Primitives 4.3.0
System.Security.Cryptography.X509Certificates 4.3.2
System.Security.Cryptography.Xml 9.0.3
System.Security.Permissions 9.0.3
System.Security.Principal.Windows 5.0.0
System.Text.Encoding 4.3.0
System.Text.Encoding.CodePages 9.0.3
System.Text.Encoding.Extensions 4.3.0
System.Text.Encodings.Web 9.0.3
System.Text.Json 9.0.3
System.Text.RegularExpressions 4.3.1
System.Threading 4.3.0
System.Threading.Tasks 4.3.0
System.Threading.Tasks.Extensions 4.6.2
System.Threading.Tasks.Parallel 4.3.0
System.Threading.Timer 4.3.0
System.ValueTuple 4.6.1
System.Xml.ReaderWriter 4.3.1
System.Xml.XDocument 4.3.0
vue 2.6.11
WebActivatorEx 2.2.0
WebGrease 1.6.0
X.PagedList 10.5.7
XLParser 1.7.5

ChatGPT 說:

在這些套件中,jquery.datatables 1.10.15 這個套件會通常是由那些需要處理資料表格並提供高度互動性的功能(例如排序、搜尋、分頁等)來使用。如果你的專案中有使用到 DataTables 函式庫來增強表格功能,這個套件將會是需要的。

根據你的清單,並沒有直接顯示 jquery.datatables 1.10.15。可能需要你額外加入這個套件,或者有其他套件會依賴它。例如,如果你有使用 jQuery 且有資料表格的功能需求,這時候可能會需要 jquery.datatables。

如果是問是否有其他套件會隱式依賴 jquery.datatables,常見的情況是:
* 任何涉及 UI 表格展示並需要高度互動的庫,像是 Bootstrap (搭配 DataTables 的樣式)。
* 某些前端的資料顯示框架或插件,可能會需要這個套件來增強表格功能。

你可以進一步檢查專案中是否有這類需求,並安裝 jquery.datatables。

********************************************************************************

下圖,Visual Studio 2019 直接移除 jquery.datatables 1.10.15 看看

下圖,Build / compile 成功

下圖,發佈 ( Deploy) 成功


實際進行登入和使用,目前沒發現問題。

********************************************************************************
搜尋 DataTables,移除引用的

發現 Site.Master 中有
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/DataTables/jquery.dataTables.min.js") %>"></script>

********************************************************************************

下圖,把網址貼到  FireFox 瀏覽器,按下 F12,選「主控台」,輸入 $.fn.dataTable.version 顯示版本,因為移除,查不到版本了。


********************************************************************************
(完)

相關

[研究]系統使用有漏洞之舊版 DataTables 1.10.15 ( jquery.datatables 1.10.15) 版元件之處理
https://shaurong.blogspot.com/2025/04/datatables-11015-jquerydatatables-11015.html

[研究]ASP.NET 請問 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 是甚麼套件的檔案?
https://shaurong.blogspot.com/2025/04/aspnet-jquerydatatablesminjs.html

[研究]用 Libman 安裝 DataTables 1.9.4 ( jquery.datatables 1.9.4 ) 元件
https://shaurong.blogspot.com/2025/04/libman-datatables-194-jquerydatatables.html

[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例
https://shaurong.blogspot.com/2025/04/aspnet-webform-datatables-11015.html


[研究]ASP.NET 請問 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 是甚麼套件的檔案?

[研究]ASP.NET 請問 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 是甚麼套件的檔案?

2025-04-07

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

ASP.NET, WebForm, 請問這2個檔案分別是甚麼套件的檔案 ?

~/Scripts/DataTables/jquery.dataTables.min.js

~/Scripts/DataTables/dataTables.bootstrap.min.js

ChatGPT 說:

這兩個檔案是 jQuery DataTables 套件及其 Bootstrap 整合樣式 的 JavaScript 檔案,主要用於在 ASP.NET WebForm(或其他前端框架)中建立強大的 HTML 表格功能,例如排序、分頁、即時搜尋等。

各檔案說明:

1.~/Scripts/DataTables/jquery.dataTables.min.js

  • 這是 DataTables 的主程式核心,由 jQuery 提供支援。
  • 功能包含:資料表的排序、分頁、搜尋等互動功能。
  • 套件名稱:DataTables
  • 官方網站:https://datatables.net/

2.~/Scripts/DataTables/dataTables.bootstrap.min.js

  • 這是 DataTables 與 Bootstrap 樣式整合的 JS 套件。
  • 它不會改變核心邏輯,但會讓 DataTables 看起來符合 Bootstrap 的 UI 風格(按鈕、表格外觀等)。
  • 此檔案是選配,用來讓 DataTables 與 Bootstrap (v3) 相容。
  • 若你使用 Bootstrap 4 或 5,應改用對應版本的整合檔案(如 dataTables.bootstrap4.min.js)。

********************************************************************************

常見搭配檔案(補充):

CSS:

<link rel="stylesheet" href="~/Content/DataTables/css/dataTables.bootstrap.min.css" />

JavaScript 載入順序建議:

<script src="~/Scripts/jquery-3.x.x.min.js"></script>
<script src="~/Scripts/DataTables/jquery.dataTables.min.js"></script>
<script src="~/Scripts/DataTables/dataTables.bootstrap.min.js"></script>

如果你是從 NuGet 或手動下載方式引入,可以確認是否安裝了以下任一套件:

NuGet 套件名稱(可能安裝來源):

  • DataTables.Net
  • DataTables.Net.Bootstrap
  • DataTables.Mvc(若是 MVC 專案)

(完)

相關

[研究]系統使用有漏洞之舊版 DataTables 1.10.15 ( jquery.datatables 1.10.15) 版元件之處理
https://shaurong.blogspot.com/2025/04/datatables-11015-jquerydatatables-11015.html

[研究]ASP.NET 請問 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 是甚麼套件的檔案?
https://shaurong.blogspot.com/2025/04/aspnet-jquerydatatablesminjs.html

[研究]用 Libman 安裝 DataTables 1.9.4 ( jquery.datatables 1.9.4 ) 元件
https://shaurong.blogspot.com/2025/04/libman-datatables-194-jquerydatatables.html

[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例
https://shaurong.blogspot.com/2025/04/aspnet-webform-datatables-11015.html


[研究]用 Libman 安裝 DataTables 1.9.4 ( jquery.datatables 1.9.4 ) 元件

[研究]用 Libman 安裝 DataTables 1.9.4 ( jquery.datatables 1.9.4 ) 元件

2025-04-07

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

續這篇,註解掉 1.10.15 那兩行後

[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例
https://shaurong.blogspot.com/2025/04/aspnet-webform-datatables-11015.html

(下圖) 最新只有 1.9.4 版




libman.json 內容

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "datatables@1.9.4",
      "destination": "lib/datatables/"  
    }
  ]
}


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>
    <!-- 引入 DataTables 的 CSS -->
    <%--<link href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css" rel="stylesheet" />--%>
    <link href="lib/datatables/css/jquery.dataTables.min.css" rel="stylesheet" />

    <!-- 引入 jQuery 和 DataTables 的 JavaScript -->
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <%--<script type="text/javascript" src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>--%>
    <script type="text/javascript" src="lib/datatables/jquery.dataTables.min.js"></script>
    <style type="text/css">
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }

        table {
            width: 100%;
            margin: 20px 0;
            border-collapse: collapse;
        }

        th, td {
            padding: 8px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }

        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <h2>DataTables 範例</h2>

            <!-- 建立 DataTables 表格 -->
            <table id="example" class="display">
                <thead>
                    <tr>
                        <th>姓名</th>
                        <th>職位</th>
                        <th>年齡</th>
                        <th>開始日期</th>
                        <th>薪水</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Tiger Nixon</td>
                        <td>System Architect</td>
                        <td>61</td>
                        <td>2011/04/25</td>
                        <td>$320,800</td>
                    </tr>
                    <tr>
                        <td>Garrett Winters</td>
                        <td>Accountant</td>
                        <td>63</td>
                        <td>2011/07/25</td>
                        <td>$170,750</td>
                    </tr>
                    <tr>
                        <td>Ashton Cox</td>
                        <td>Junior Technical Author</td>
                        <td>66</td>
                        <td>2009/01/12</td>
                        <td>$86,000</td>
                    </tr>
                    <tr>
                        <td>Cedric Kelly</td>
                        <td>Senior Javascript Developer</td>
                        <td>22</td>
                        <td>2012/03/29</td>
                        <td>$433,060</td>
                    </tr>
                    <tr>
                        <td>Airi Satou</td>
                        <td>Accountant</td>
                        <td>33</td>
                        <td>2008/11/28</td>
                        <td>$162,700</td>
                    </tr>
                    <!-- 你可以繼續增加更多資料列 -->
                </tbody>
            </table>
        </div>
    </form>

    <script type="text/javascript">
        // 初始化 DataTable
        $(document).ready(function () {
            $('#example').DataTable();
        });
    </script>
</body>
</html>




下圖,把網址貼到  FireFox 瀏覽器,按下 F12,選「主控台」,輸入 $.fn.dataTable.version 顯示版本

移除套件,把 libman,json 改成

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
  ]
}


存檔後,就會自動移除 bootstrap了。

********************************************************************************

註:其實還可以考慮用 npm 安裝,但敝人電腦沒有安裝 node.js 和 npm,就不多談了。

npm install datatables.net

npm install datatables.net-dt


(完)

相關

[研究]系統使用有漏洞之舊版 DataTables 1.10.15 ( jquery.datatables 1.10.15) 版元件之處理
https://shaurong.blogspot.com/2025/04/datatables-11015-jquerydatatables-11015.html

[研究]ASP.NET 請問 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 是甚麼套件的檔案?
https://shaurong.blogspot.com/2025/04/aspnet-jquerydatatablesminjs.html

[研究]用 Libman 安裝 DataTables 1.9.4 ( jquery.datatables 1.9.4 ) 元件
https://shaurong.blogspot.com/2025/04/libman-datatables-194-jquerydatatables.html

[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例
https://shaurong.blogspot.com/2025/04/aspnet-webform-datatables-11015.html



[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例

[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例

2025-04-07

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

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>
        <!-- 引入 DataTables 的 CSS -->
    <link href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css" rel="stylesheet" />

    <!-- 引入 jQuery 和 DataTables 的 JavaScript -->
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script type="text/javascript" src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
    <style type="text/css">
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        table {
            width: 100%;
            margin: 20px 0;
            border-collapse: collapse;
        }
        th, td {
            padding: 8px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
<form id="form1" runat="server">
        <div>
            <h2>DataTables 範例</h2>

            <!-- 建立 DataTables 表格 -->
            <table id="example" class="display">
                <thead>
                    <tr>
                        <th>姓名</th>
                        <th>職位</th>
                        <th>年齡</th>
                        <th>開始日期</th>
                        <th>薪水</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Tiger Nixon</td>
                        <td>System Architect</td>
                        <td>61</td>
                        <td>2011/04/25</td>
                        <td>$320,800</td>
                    </tr>
                    <tr>
                        <td>Garrett Winters</td>
                        <td>Accountant</td>
                        <td>63</td>
                        <td>2011/07/25</td>
                        <td>$170,750</td>
                    </tr>
                    <tr>
                        <td>Ashton Cox</td>
                        <td>Junior Technical Author</td>
                        <td>66</td>
                        <td>2009/01/12</td>
                        <td>$86,000</td>
                    </tr>
                    <tr>
                        <td>Cedric Kelly</td>
                        <td>Senior Javascript Developer</td>
                        <td>22</td>
                        <td>2012/03/29</td>
                        <td>$433,060</td>
                    </tr>
                    <tr>
                        <td>Airi Satou</td>
                        <td>Accountant</td>
                        <td>33</td>
                        <td>2008/11/28</td>
                        <td>$162,700</td>
                    </tr>
                    <!-- 你可以繼續增加更多資料列 -->
                </tbody>
            </table>
        </div>
    </form>

    <script type="text/javascript">
        // 初始化 DataTable
        $(document).ready(function () {
            $('#example').DataTable();
        });
    </script>
</body>
</html>




下圖,註解掉 1.10.15 那兩行後

(完)

相關

[研究]系統使用有漏洞之舊版 DataTables 1.10.15 ( jquery.datatables 1.10.15) 版元件之處理
https://shaurong.blogspot.com/2025/04/datatables-11015-jquerydatatables-11015.html

[研究]ASP.NET 請問 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 是甚麼套件的檔案?
https://shaurong.blogspot.com/2025/04/aspnet-jquerydatatablesminjs.html

[研究]用 Libman 安裝 DataTables 1.9.4 ( jquery.datatables 1.9.4 ) 元件
https://shaurong.blogspot.com/2025/04/libman-datatables-194-jquerydatatables.html

[研究]ASP.NET, WebForm, 使用DataTables 1.10.15 ( jquery.datatables 1.10.15) 元件範例
https://shaurong.blogspot.com/2025/04/aspnet-webform-datatables-11015.html


[研究]ASP.NET, NuGet 安裝 bootstrap 3.4.1 會安裝那些套件

[研究]ASP.NET, NuGet 安裝 bootstrap 3.4.1 會安裝那些套件

2025-04-07

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

WebApplication1

正在安裝:

jQuery.1.9.1

bootstrap.3.4.1



********************************************************************************

【bootstrap 3.4.1 不更新,更新其他】

WebApplication1

更新:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1 -> Microsoft.CodeDom.Providers.DotNetCompilerPlatform.4.1.0

jQuery.1.9.1 -> jQuery.3.7.1


********************************************************************************

(完)

相關

[研究]如何開啟 nmap 掃描結果的 .gnmap , .nmap 和 .xml 檔案 ?

[研究]如何開啟 nmap 掃描結果的 .gnmap , .nmap 和 .xml 檔案 ?

2025-04-07

.nmap → 傳統純文字格式(人類可讀)

.gnmap → 「grepable」格式,適合腳本分析

.xml → XML 格式,適合工具整合(如 Nmap Parser、Vulners 等)

(完)


2025年4月5日 星期六

[研究]「指定掃描期間的 CPU 使用率百分比上限」設定

[研究]「指定掃描期間的 CPU 使用率百分比上限」設定

2025-04-05

偶然看到一個影片,說CPU若常常100%,說把「指定掃描期間的 CPU 使用率百分比上限」設定為 0% 就可以解決,影片操作很快讓人難跟上,敝人以圖片呈現,並討論一下。

(下圖) 啟動 gpedit.exe 本機群組原則編輯器 (Local Group Policy Editor)




這個原則設定可讓您設定掃描期間允許的 CPU 使用率百分比上限。這個設定的有效值是以整數 5 到 100 表示的百分比。0 值代表沒有 CPU 使用率節流。預設值為 50。

如果您啟用這個設定,CPU 使用率將不會超過指定的百分比。

如果您停用或未設定這個設定,CPU 使用率將不會超過預設值。

********************************************************************************

實際測試,點選「已啟用」瞬間會變成50%,輸入0%,按下「確定」按鈕後,再次開啟,會變成「已停用」,百分比是0,灰色,無法更改。等於是把防毒掃描功能關閉了。

為了避免CPU常100%而關閉防毒掃描,這作法值得考慮。

(完) 


[研究]Edge 和 IE 是否支援 Outlook 中檢視 .mht 內容 ?

[研究]Edge 和 IE (Internet Explorer ) 是否支援檢視 .mht 內容  ?
[研究]Edge 和 IE (Internet Explorer ) 是否支援 Outlook 中檢視 .mht 內容  ?

2025-04-05

偶然發現Email內容用 Edge 不能看,要 IE 才行。(環境 Windows Server 2019 + Outlook 2019)

********************************************************************************

測試,Outlook 中 .mht 內容 用 Edge 和 IE 開啟測試







********************************************************************************
測試,建立一個 .mht (網頁封存,單一檔案) 用 Edge 和 IE 開啟測試




********************************************************************************

 Edge 和 IE 是否支援檢視 .mht 內容  ? Edge 和 IE 是否支援 Outlook 中檢視 .mht 內容  ?

ChatGPT 說:

以下是關於 Microsoft Edge 和 Internet Explorer (IE) 是否支援 .mht 檔案(MIME HTML)的詳細說明,包括在 Outlook 中檢視的情況:

🔍 一般情況:Edge 和 IE 是否支援開啟 .mht 檔案?

瀏覽器是否支援 .mht
Internet Explorer (IE)✅ 原生支援,可以直接開啟 .mht 檔案。
舊版 Edge (EdgeHTML)❌ 不支援。無法直接開啟 .mht 檔案。
新版 Edge (Chromium)❌ 不支援。預設無法直接開啟 .mht 檔案,會下載檔案。

📌 備註:MHT(MHTML)是一種單一網頁封裝格式,IE 是少數原生支援的瀏覽器。


📧 Outlook 中檢視 .mht 附件的支援情況

瀏覽器/應用程式是否可在 Outlook 中檢視 .mht
Outlook + IE (內嵌 IE)✅ 可以正確開啟 .mht 附件(IE 是 Outlook 的預設 HTML 引擎直到 Outlook 2016/2019)。
Outlook + Edge (Chromium)❌ 不支援嵌入 .mht 預覽。Outlook 會提示另存或外部開啟。

📌 Outlook 仍依賴 IE 引擎來渲染部分 HTML 內容,尤其是在舊版(如 Outlook 2016、2019)中。但 .mht 檔案仍需下載後以 IE 開啟。Edge Chromium 並未整合 .mht 的支援功能進 Outlook。

✅ 建議處理方式

  • 要開啟 .mht 檔案:請使用 IE(若仍安裝)或轉存成 .html 再用瀏覽器開啟。
  • 若使用 Edge Chromium:可考慮轉檔(例如用 IE 開啟後另存為 .pdf)或使用第三方工具。
  • Outlook 中接收到 .mht 附件時:
    • 若系統仍有 IE,可以直接用 IE 開啟。
    • 若已無 IE,需下載後用 Word 或第三方支援 .mht 的工具開啟。

需要我提供 .mht 轉換 HTML 或 PDF 的範例工具嗎?或者你是在 Outlook 裡遇到特定顯示問題?可以幫你檢查或解決。

(完)

2025年4月2日 星期三

[研究]SQL Server 那些版本、等級支援 SQL Server Audit ?

[研究]SQL Server 那些版本、等級支援 SQL Server Audit ?

2025-04-02

ChatGPT 說在 SQL Server 中,「伺服器稽核(Server Audit)」功能只有在 Enterprise 版和特定的高階版本(如 Datacenter 或 Developer)才可用,而 Standard 版及更低版本(如 Express)不支援 這個功能。敝人實際測試並非如此。

根據下面網址,至少 SQL Server 2016 有 ,但沒提到要 Enterprise 才支援
https://learn.microsoft.com/zh-tw/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=sql-server-2016

3.2. SQL Server Audit Support in Different Editions and Versions
https://logbinder.helpspot.com/index.php?pg=kb.page&id=79 
根據這篇,有更詳細說明

Edition \ VersionSQL Server 2008 and 2008 R2SQL Server 2012 and 2014SQL Server 2016* and 2017
EnterpriseServer- and database-levelServer- and database-levelServer- and database-level
DeveloperServer- and database-levelServer- and database-levelServer- and database-level
DatacenterServer- and database-levelN/AN/A
Business IntelligenceNoneServer-levelN/A
StandardNoneServer-levelServer- and database-level*
WebNoneServer-levelServer- and database-level*
ExpressNoneServer-levelServer- and database-level*

* Database-level auditing for Standard, Web and Express editions are available starting SQL Server 2016 SP1

********************************************************************************

​以下是 SQL Server Audit 中伺服器層級(Server-Level)和資料庫層級(Database-Level)稽核的適用情境、優缺點,以及彼此無法取代的功能的比較:

層級適用情境優點缺點彼此無法取代的功能
伺服器層級 需要監控整個 SQL Server 執行個體的活動,例如登入事件、伺服器配置變更、資料庫的建立或刪除等。 希望統一管理所有資料庫的稽核策略,確保一致性。 能夠集中監控整個伺服器的活動,提供全局視角。 設定簡單,適用於需要統一監控的情境。 無法針對特定資料庫或物件進行細緻的稽核設定。 可能會產生大量的稽核資料,增加儲存需求。 能夠監控整個伺服器的活動,例如登入和伺服器配置變更,這些是資料庫層級稽核無法覆蓋的。
資料庫層級 需要監控特定資料庫內的活動,例如對特定表格的 SELECT、INSERT、UPDATE、DELETE 操作。 不同資料庫需要不同的稽核策略,以滿足各自的安全性和合規性要求。 提供更細緻的控制,能夠針對特定資料庫或物件設定稽核策略。 有助於滿足特定的合規性要求,針對敏感資料進行監控。 需要在每個資料庫中單獨設定和管理稽核策略,增加管理複雜度。 如果同時啟用伺服器層級和資料庫層級稽核,可能會導致重複記錄相同的事件,增加儲存成本。 能夠針對特定資料庫內的物件和操作進行細緻監控,這是伺服器層級稽核無法實現的。

********************************************************************************

(完)

[研究]SQL Server 2019 「維護計畫精靈」的「副檔名」該輸入 bak 還是 .bak

[研究]SQL Server 2019 「維護計畫精靈」的「副檔名」該輸入 bak 還是 .bak

2025-04-02



SQL Server 2019 「維護計畫精靈」的「定期維護清除工作」畫面的「副檔名」該輸入 "bak" 還是 ".bak"

ChatGPT 說:

在 SQL Server 2019 維護計畫精靈(Maintenance Plan Wizard)中的 定期維護清除工作(Maintenance Cleanup Task)設定 副檔名(File Extension)時,應該輸入 bak(不含 .),而不是 .bak。

原因:

SQL Server 只會比對副檔名的字串,不需要加 .,否則可能會導致匹配錯誤。

官方文件與社群經驗 建議填入副檔名時,不包含 .,例如:

備份檔案:bak

壓縮備份檔案:trn

日誌備份檔案:log

如果輸入 .bak,SQL Server 可能無法正確刪除 .bak 檔案,因為它只會比對 檔案名稱的最後幾個字元是否等於 bak,而不是 .bak。

因此,請輸入 bak ✅ 而不是 .bak ❌。

(完)

相關

2025年4月1日 星期二

[研究]收到的信件主旨前面被加上 [SPF檢查失敗],這是甚麼 ?

[研究]收到的信件主旨前面被加上 [SPF檢查失敗],這是甚麼 ?

2025-04-01

收到的信件主旨前面被加上 [SPF檢查失敗],這是甚麼 ?

ChatGPT 說:

信件主旨前面被加上 [SPF檢查失敗],表示該郵件的寄件伺服器在 SPF (Sender Policy Framework) 檢查時未通過,可能是垃圾郵件或詐騙郵件的跡象。

SPF 檢查機制

SPF 是一種 電子郵件驗證機制,用來防止發送者偽造郵件地址。當你的郵件伺服器收到一封信時,它會:

  • 查詢寄件者的 SPF 紀錄(寄件網域的 DNS 設定)。
  • 檢查寄信的 IP 地址是否在該 SPF 紀錄允許的範圍內。
  • 如果 IP 地址 不在 SPF 紀錄內,就會視為 SPF 失敗,可能標示為可疑郵件。


SPF 檢查失敗的可能原因

  • 寄件伺服器未設定 SPF 紀錄:如果寄件方的網域沒有設定 SPF,收件伺服器無法驗證,可能會標示為 SPF 失敗。
  • 寄件者使用了未授權的伺服器發送郵件:例如:公司郵件應該由企業郵件伺服器發送,但寄件者使用 Gmail、Yahoo 或其他第三方伺服器代發,導致 SPF 失敗。
  • 郵件經過轉寄(Forwarding):如果郵件從 A 伺服器寄給 B,然後 B 轉寄給 C,C 可能會發現 B 不是原寄件網域的授權伺服器,因此 SPF 會失敗。
  • 郵件被偽造(釣魚或垃圾郵件):如果攻擊者偽造寄件者的地址,但實際發信的伺服器 IP 不在 SPF 記錄內,會導致 SPF 失敗。


應對方式

  • 如果是可信來源的郵件:你可以聯絡寄件者,請他們檢查自己的 SPF 設定,確保他們的寄件伺服器 IP 在 SPF 紀錄內。
  • 如果是垃圾郵件或釣魚郵件:不要點擊郵件內的連結或開啟附件,直接刪除或標示為垃圾郵件。

如果這種情況頻繁發生,建議你的 IT 管理員或郵件管理員檢查郵件過濾與 SPF 設定,確保未誤判正常郵件。

(完)

[研究]DropDownList從資料庫抓出的值,不在下拉選項中的處理

[研究]DropDownList從資料庫抓出的值,不在下拉選項中的處理

2025-04-01

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19


DropDownListClass.cs

using System;
using System.Web.UI.WebControls;

namespace WebApplicationProject1.Controls
{
    public class DropDownListClass : DropDownList
    {
        protected override void PerformDataBinding(System.Collections.IEnumerable dataSource)
        {
            // 過濾掉 DropDownList 在 DataBinding 時可能會發生的 Exception 問題!
            // 如果 Exception 發生,預設會選取第一個下拉選項!
            try
            {
                base.PerformDataBinding(dataSource);
            }
            catch (ArgumentOutOfRangeException ex)
            {
                ArgumentOutOfRangeException o = ex;
            }
        }
    }
}

(完)

相關

[研究]建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤

[研究]建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤

2025-04-01

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************



********************************************************************************

'/' 應用程式中發生伺服器錯誤。

找不到網路路徑。

描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外狀況詳細資訊: System.ComponentModel.Win32Exception: 找不到網路路徑。

原始程式錯誤:

行 55:             {
行 56:                 SqlCommand command = new SqlCommand(queryString, connection);
行 57:                 connection.Open();
行 58:                 try
行 59:                 {




堆疊追蹤:

[Win32Exception (0x80004005): 找不到網路路徑。]

[SqlException (0x80131904): 建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: Named Pipes Provider, error: 40 - 無法開啟至 SQL Server 的連接)]
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1341
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +159
   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +382
   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +307
   System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +198
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +422
   System.Data.SqlClient.SqlConnection.Open() +199   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.<LoadRecursiveAsync>d__246.MoveNext() +284
   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62
   System.Web.Util.WithinCancellableCallbackTaskAwaiter.GetResult() +32
   System.Web.UI.<ProcessRequestMainAsync>d__523.MoveNext() +6925



版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.8.4770.0

********************************************************************************

後來檢查 Deploy 的目的目錄中的 Web.Config 檔案內容,發現選錯 Deploy 發布設定檔,改選正確的重新 Deploy 後正常。

(完)

相關