• 在SQL Server中调用.NET程序集


    使用到这东西完全是个巧合和无奈之举。不小心在数据库中插入了一些HttpUtility.UrlEncodeUnicode之后的数据。数据库里的一些字段成了%uxxxx%uxxxx这样的结构。

    搜索了半天T-SQL UrlDecode的函数,发现都不支持上面这种Unicode的。自己对T-SQL又不熟悉,时间也很紧迫。

    解铃还须系铃人,想到在T-SQL里调用HttpUtility.UrlDecode应该会比较方便。查了一下,大概代码如下。这东西用完就忘,记下来备查吧。

    建立一个DLL,一个类,代码如下。

    public partial class SystemWeb 
        { 
            [SqlMethod] 
            public static SqlString UrlDecode(string value) 
            { 
                return new SqlString(HttpUtility.UrlDecode(value)); 
            } 
        }

    放到数据库服务器上。

    之后运行下面的T-SQL代码

    EXEC sp_configure 'show advanced options','1'; 
    GO 
    RECONFIGURE; 
    GO 
    EXEC sp_configure 'clr enabled','1' 
    RECONFIGURE; 
    GO 
    
    ALTER DATABASE DBName SET TRUSTWORTHY ON 
    GO 
    
    CREATE ASSEMBLY 
    [System.Web] FROM 
    'C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\System.Web.dll' 
    WITH permission_set = UNSAFE 
    GO 
    
    CREATE ASSEMBLY SQL_CLR_Url 
    FROM 'D:\SqlClr.dll' 
    WITH PERMISSION_SET = UNSAFE 
    
    GO
    
    CREATE FUNCTION SqlUrlDecode(@urlstr NVARCHAR(4000)) 
    RETURNS NVARCHAR(4000) 
    AS 
    EXTERNAL NAME SQL_CLR_Url.[SqlClr.SystemWeb].UrlDecode 
    GO   

    然后就可以在T-SQL里调用这个函数了。

    select dbo.SqlUrlDecode(Name) from Table

    安全起见,屁股擦完了,记得把clr关掉。

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: TOFU: Target-Oriented FUzzer
    Proj THUDBFuzz Paper Reading: Sequence Coverage Directed Greybox Fuzzing
    Proj THUDBFuzz Paper Reading: Hawkeye: Towards a Desired Directed Grey-box Fuzzer
    Proj THUDBFuzz Paper Reading: ParmeSan: Sanitizer-guided Greybox Fuzzing
    Proj THUDBFuzz Paper Reading: Driller: Augmenting Fuzzing Through Selective Symbolic Execution
    Proj THUDBFuzz Paper Reading: QSYM: A Practical Concolic Execution Engine Tailored for Hybrid Fuzzing
    Proj THUDBFuzz Paper Reading: SAVIOR: Towards Bug-Driven Hybrid Testing
    第六章 Ajax 数据爬取
    5.3 非关系型数据库存储
    5.2 关系型数据库存储
  • 原文地址:https://www.cnblogs.com/nankezhishi/p/2295049.html
Copyright © 2020-2023  润新知