2023年4月3日 星期一

[研究][ASP.NET]C#如何偵測網站使用的 jQuery 版本?

[研究][ASP.NET]C#如何偵測網站使用的 jQuery 版本?

2023-04-03

要偵測一個網站使用的 jQuery 版本,可以透過查看網站中載入的 jQuery 檔案的檔名或內容,來判斷網站使用的 jQuery 版本。

以下是一些偵測 jQuery 版本的方法:

  • 查看 jQuery 檔案的檔名:通常 jQuery 的檔名中會包含版本號,例如 jquery-3.6.0.min.js。你可以透過讀取網頁中載入的 jQuery 檔案的檔名,來獲取網站使用的 jQuery 版本。
  • 查看 jQuery 檔案的內容:如果網站使用的是壓縮過的 jQuery 檔案,你可以下載檔案,再透過解壓縮工具解壓縮檔案,然後查看檔案中的內容。在檔案中通常會有版本號的註解或其他標記,可以用來確認網站使用的 jQuery 版本。
  • 使用 jQuery 版本偵測工具:有些網站提供了線上的 jQuery 版本偵測工具,可以直接輸入網站的網址,即可顯示網站使用的 jQuery 版本。例如:https://www.wappalyzer.com/

以下是一個簡單的 C# 程式碼範例,可以透過讀取網頁中載入的 jQuery 檔案的檔名,來獲取網站使用的 jQuery 版本:

Default.aspx.cs

using System;
using System.Net;
using System.Text.RegularExpressions;


namespace WebApplication1
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = "none";
            string url = "https://www.twncert.org.tw/";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
           
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                using (System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream()))
                {
                    string html = reader.ReadToEnd();
                    if (html.ToLower().Contains("jquery.min.js"))
                    {
                        Label1.Text = "has jquery.min.js";
                    }
                    if (html.ToLower().Contains("jquery.js"))
                    {
                        Label1.Text = "has jquery.js";
                    }
                    // 使用正規表達式來匹配 jQuery 檔案的檔名
                    Match match = Regex.Match(html, @"<script.*?src=""(.*?/jquery-\d+\.\d+\.\d+\.min\.js)""");
                    if (match.Success)
                    {
                        string jqueryFileUrl = match.Groups[1].Value;
                        string[] segments = jqueryFileUrl.Split('/');
                        string fileName = segments[segments.Length - 1];
                        string[] fileNameParts = fileName.Split('-');
                        if (fileNameParts.Length == 3)
                        {
                            string version = fileNameParts[1] + "." + fileNameParts[2].Substring(0, fileNameParts[2].Length - 7);
                            Label1.Text = version;
                            //Console.WriteLine("網站使用的 jQuery 版本為:" + version);
                        }
                    }
                }
            }
        }
    }
}


(完)


沒有留言:

張貼留言