HttpUtility.UrlEncode防止SQL注入

本文关键字:注入 SQL 防止 UrlEncode HttpUtility | 更新日期: 2023-09-27 18:05:11

使用HttpUtility.UrlEncode()来防止where子句上的SQL注入。然而,一些输入的文本有空格,用%20替换它们将停止查询。有没有更好的选择?

HttpUtility.UrlEncode防止SQL注入

在数据库查询中使用参数而不是连接输入。工作。如果这听起来需要大量的工作,那么考虑一下像dapper这样的工具,它可以使工作变得简单:

string name = ...
int regionId = ...
var customers = connection.Query<Customer>(
    "select * from Customers where Name = @name and RegionId = @regionId",
    new { name, regionId }).AsList();

为防止SQL注入,建议使用SQL参数。当使用参数时,SQL确保查询中的参数永远不会被执行。

永远不要通过连接字符串来构造查询。特别是当输入是不可信的(从用户接收的)!

在你使用c#的情况下,你可以看看这里:http://csharp-station.com/Tutorial/AdoDotNet/Lesson06