gpt4 book ai didi

sql - Oracle 的 DBMS_ASSERT 的 Sql Server 等效项是什么?

转载 作者:行者123 更新时间:2023-12-04 14:00:32 25 4
gpt4 key购买 nike

DBMS_ASSERT 是Oracle中防止SQL注入(inject)攻击的关键之一。我尝试了粗略的搜索...是否有任何与此功能等效的 SQL Server 2005/2008?

我正在寻找一个特定的实现,它与 DBMS_ASSERT 的所有相应 Oracle 包成员对应。

  • NOOP
  • SIMPLE_SQL_NAME
  • QUALIFIED_SQL_NAME
  • SCHEMA_NAME

  • 我知道防止注入(inject)的最佳实践......绑定(bind)变量......成为其中之一。
    但是,在这个问题中,我专门寻找一种清理输入的好方法......在不使用绑定(bind)变量的情况下。

    你有什么具体的实现吗?
    是否有一个库实际上是 Oracle 包的 SQL Server 端口?

    最佳答案

    不要通过构建字符串和执行它们来进行动态查询。

    使用sp_executesql并将参数作为参数传递。

    你会发现sql注入(inject)已经不复存在了。

    编辑 : 不好意思,我着急写错了命令。不是 sp_execute,而是 sp_executesql;它接受一个字符串和一组参数:所有参数的编码和转义都由 SQL Server 完成。

    编辑2 : sp_executesql statement explaination

    关于sql - Oracle 的 DBMS_ASSERT 的 Sql Server 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1718388/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com