- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了便于讨论,我们假设我必须创建一个包含具有 INSERT 的 SQL 查询的局部变量:
DECLARE @insert NVARCHAR(MAX)
SELECT @insert = 'INSERT INTO [dbo].[' + @table + '] VALUES...
EXEC (@insert)
此 INSERT 还将包含一个列值:
DECLARE @insert NVARCHAR(MAX)
SELECT @insert =
'INSERT INTO [dbo].[' + @table + '] VALUES (N''' + @message + ''')'
EXEC (@insert)
现在,我显然担心注入(inject)攻击,并希望确保 @message 的值不会使 @insert 的值成为恶意或格式错误的 EXEC 查询。
这给我们带来了我的问题:转义 @message 中的 ' 字符就足够了吗? @message 中是否还有其他可能出现的字符可以转义?
示例:
DECLARE @insert NVARCHAR(MAX)
SELECT @message = REPLACE(@message,'''','''''')
SELECT @insert =
'INSERT INTO [dbo].[' + @table + '] VALUES (N''' + @message + ''')'
EXEC (@insert)
(当我说“必须”时,这是因为我的查询位于存储过程中,并且该存储过程接受@table,这是要插入的目标表。我没有兴趣讨论我的体系结构或为什么要插入的表是通过过程参数“动态”指定的。请不要对此发表评论,除非除了 EXEC() 查询之外还有另一种方法来指定要插入的表然后表名作为过程参数被接收。)
最佳答案
使用sp_executesql
和内置quotename()
。这篇文章,The Curse and Blessings of Dynamic SQL ,几乎是权威的引用。
关于SQL Server : Sanitizing @param against injection attacks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/703856/
A Killer Adversary for Quicksort声称有一种方法可以将任何快速排序实现减少到二次时间。我想这意味着它总是会生成一个列表,该列表总是需要 O(n^2) 才能运行。这是在说些
我想将整数矩阵列表转换为数字。我知道lapply对内部结构不友好,但是有没有lapply-solution? mtList = list(matrix(sample(1:10),nrow=5),
我对 Azure AD B2C 的帐户定价和身份验证有几个问题,这些问题都围绕着脚本式 DOS 攻击的问题。 定价页面:https://azure.microsoft.com/en-us/pricin
我对 Azure AD B2C 的帐户定价和身份验证有几个问题,这些问题都围绕着脚本式 DOS 攻击的问题。 定价页面:https://azure.microsoft.com/en-us/pricin
我正在关注基于 spring 框架 3.2.4 的应用程序的本教程 http://springdiaries.blogspot.be/2012/12/web-security-preventing-c
我正在编写一个工具,在给定任何 URL 的情况下,该工具会定期获取其输出。问题是输出可能不是简单轻量级的 HTML 页面(在大多数情况下是预期的),而是一些繁重的数据流(即直接来自/dev/urand
我是一名 iOS 开发人员,开发了一款网络服务应用程序,该应用程序已在 App Store 上架一年。现在,我决定让这款应用跨平台使用 - 从 Android 开始,为此我聘请了一名 Android
代码: void doit() { system("/bin/sh"); exit(0); } int main(int argc, char **ar
题目地址:https://leetcode.com/problems/queens-that-can-attack-the-king/ 题目描述 Onan 8x8 chessboard, ther
我使用了 Rack::Attack 的示例节流代码。 throttle('req/ip', limit: 100, period: 5.minutes) do |req| req.ip unles
为了便于讨论,我们假设我必须创建一个包含具有 INSERT 的 SQL 查询的局部变量: DECLARE @insert NVARCHAR(MAX) SELECT @insert = 'INSER
我陷入了黑客练习。 程序执行时会显示以下内容: Build your own string! Usage: ./4 length command... Each command consist o
当我使用 PHP + Mysql 时,我发现使用与数据库列名称相同的 html 输入名称很方便。这大大简化了 CRUD 操作。 但是,有一个困境。一方面,这种一对一的对应关系简化了事情,但另一方面,攻
我们一直在阅读 Definitive guide to form based website authentication目的是防止快速登录尝试。 这方面的一个例子可能是: 1 次尝试失败 = 没有延
这是我的代码: 类(class): class Player(object): """Base class for the player""" def __init__(self, name, arm
我有一个用 C++ 编写的游戏服务器,我正在使用一个网络库在 Windows 中使用 winsock。我一直在对我的服务器进行压力测试,看看它一次可以接受多少个连接。当我使用我的游戏客户端连接时它工作
我对这个话题的初步理解是,我需要防止一些请求中可用的垃圾字符来避免这些攻击。 我决定在使用之前通过对每个请求参数进行模式匹配来解决这个问题。 Internet 上的大多数帖子都在谈论 Null Byt
如何避免跨站点脚本攻击? Cross-site script attacks (或跨站点脚本)是指,例如,如果您的主页上有留言簿,并且客户发布了一些 javascript 代码,这些代码会将您重定向到
我非常担心我构建的网络应用程序的安全性,因此我一直在使用各种工具来抓取我的每个应用程序。 虽然在编程方面可以完成的所有事情都已经完成,但现成的类(如 Active Record)无法预见,但有一个问题
我知道格式化字符串攻击发生在格式化 I/O 函数需要比提供的参数更多的参数时。 在 C 中, 一个读取内存位置的例子: printf("%x"); // this prints a memory ad
我是一名优秀的程序员,十分优秀!