> 데이터 베이스 > MySQL 튜토리얼 > 깨끗하고 안전한 코드를 위해 .NET/SQL에서 테이블 이름을 매개변수화할 수 있습니까?

깨끗하고 안전한 코드를 위해 .NET/SQL에서 테이블 이름을 매개변수화할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-12-30 08:59:18
원래의
865명이 탐색했습니다.

Can Table Names Be Parameterized in .NET/SQL for Clean and Secure Code?

SQL에서 테이블 이름을 매개변수화합니까?

질문:

테이블을 전달하는 것이 가능합니까? .NET/SQL에서 매개변수로 이름을 지정하시겠습니까? 최종 목표는 보안을 손상시키지 않으면서 깔끔함을 높이고 지저분한 코드를 방지하는 것입니다.

답변:

테이블 이름을 직접 매개변수화하는 것은 지원되지 않습니다. 그러나 sp_ExecuteSQL을 사용하여 이를 간접적으로 달성할 수 있습니다.

SqlConnection conn = new SqlConnection("Your database connection string");
DataTable dt = new DataTable();

using (SqlCommand cmd = conn.CreateCommand())
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "sp_ExecuteSQL";

    cmd.Parameters.AddWithValue("@stmt","SELECT * FROM table");

    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
        da.Fill(dt);
    }
}
로그인 후 복사

또는 C#에서 (매개변수화된) SQL 문을 구성하고 테이블 이름을 추가한 후 명령으로 실행할 수도 있습니다.

var name = ...; //Determine table name dynamically here
var sql = $"SELECT * FROM {"table"}";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
    cmd.Parameters.Add("", ...);
    var result = cmd.ExecuteReader();
    ...
}
로그인 후 복사

잠재적인 보안 취약점을 방지하려면 테이블 이름을 화이트리스트에 추가하는 것을 잊지 마세요.

위 내용은 깨끗하고 안전한 코드를 위해 .NET/SQL에서 테이블 이름을 매개변수화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿