数据库管理系统_断言是Oracle中防止SQL注入攻击的关键之一。我尝试了粗略搜索...是否有 SQL Server 2005/2008 等效于此功能?
我正在寻找一个特定的实现,它具有 DBMS_ASSERT 的所有相应 Oracle 包成员的对应项。
- NOOP
- SIMPLE_SQL_NAME
- QUALIFIED_SQL_NAME
- SCHEMA_NAME
我知道防止注入的最佳实践...绑定变量...是其中之一。
但是,在这个问题中,我专门寻找一种在不使用绑定变量的情况下清理输入的好方法。
你们有具体的实现吗?
是否有一个库实际上是 Oracle 包的 SQL Server 端口?
不要通过构建字符串并执行它们来执行动态查询。
Use sp_executesql
并将参数作为参数传递。
你会发现sql注入已经不复存在了。
EDIT: 抱歉,我太着急,写错了命令。它不是 sp_execute,而是 sp_executesql;它需要一个字符串和一组参数:参数的所有编码和转义都由 SQL Server 完成。
EDIT2: sp_executesql语句解释 http://doc.ddart.net/mssql/sql70/sp_ea-ez_4.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)