我意识到参数化SQL查询是构建包含用户输入的查询时消毒用户输入的最佳方式,但我想知道使用用户输入并转义任何单引号并用单引号包围整个字符串有什么问题.这是代码:
sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"
Run Code Online (Sandbox Code Playgroud)
用户输入的任何单引号都被双单引号替换,这消除了用户结束字符串的能力,因此他们可能键入的任何其他内容(例如分号,百分号等)都将成为字符串的一部分而不是实际上作为命令的一部分执行.我们使用的是Microsoft SQL Server 2000,我相信单引号是唯一的字符串分隔符,也是逃避字符串分隔符的唯一方法,因此无法执行用户键入的任何内容.
我没有看到任何方法发起针对此的SQL注入攻击,但我意识到,如果这是像我看来一样的防弹,其他人会想到它,这将是常见的做法.我的问题是:这段代码有什么问题?有没有人知道通过这种清理技术获得SQL注入攻击的方法?利用此技术的示例用户输入将非常有用.
更新:
感谢大家的回答; 几乎我在研究中遇到的所有信息都出现在这个页面的某个地方,这表明那些在忙碌的日子里抽出时间帮助我解决这个问题的人的智慧和技巧.
我还没有接受任何答案的原因是我仍然不知道如何有效地针对此代码启动SQL注入攻击.有些人建议反斜杠会转义一个单引号而另一个引用字符串结束,以便字符串的其余部分作为SQL命令的一部分执行,我意识到这个方法可以将SQL注入一个mySQL数据库,但在MS SQL 2000中,唯一的方法(我能够找到)逃避单引号是另一个单一的qoute; 反斜杠不会这样做.除非有办法停止单引号的转义,否则其余的用户输入都不会被执行,因为它将全部作为一个连续的字符串.
我知道有更好的方法来消毒输入,但我真的更有兴趣了解为什么我上面提供的方法不起作用.如果有人知道对这种清理方法进行SQL注入攻击的任何特定方法,我很乐意看到它.
我在Visual Studio 2005中使用.net 2.0,我试图在表单的顶部添加两个不同的工具条,以便它们并排显示.我希望它像Word 2003一样,您可以在同一行中添加多个工具条并使它们彼此一致,而不是为每个工具条专用一行.
所以我添加了一个ToolStripPanel并将其停靠在表单的顶部(我没有使用ToolStripContainer,因为我不需要所有额外的面板;我只需要顶部的那个).我添加了两个工具条并将其Stretch属性设置为False.我可以将它们并排显示在设计器窗口中,但在运行时,ToolStripPanel会分离工具条并为每个工具条提供自己的专用行.好像要侮辱伤害,当我停止调试并返回设计师时,我发现设计师正在将工具条移动到他们自己的行!我在这里做错了吗?
我一直在谷歌搜索并找到一些关于ToolStripPanelRow对象的信息,但是我没有看到向它添加工具条的简单方法(即它没有ToolStripPanelRow.Controls.Add方法或类似的东西),所有它有一个Controls()属性,返回一个控件对象Array,我没有太多运气试图向该数组添加项目.我还发现了一些关于ToolStripPanel.Join方法的文档,这听起来应该可以完成这项工作,所以我尝试了所有3次重载,但它们不像宣传的那样工作.无论我做什么或我尝试哪些选项,它总是将新的工具条添加到面板顶部的自己的行上,并将其他所有内容向下推.
为了完全公开,我应该警告你我有ToolStripPanel和一个添加到基类表单的工具条,我试图将其他工具条添加到继承自baseclass表单的子类表单.基类表单中的ToolStripPanel和ToolStrip都声明为"受保护的朋友",因此这应该有效.正如我所提到的,子类窗体的设计器窗口将允许我这样做(至少,一段时间).
如果有人能帮我解决这个问题,或者至少可以解释为什么不这样做,我将非常感激.
user-interface visual-studio-2005 toolstrip toolstrippanel .net-2.0
我正在使用VB.NET 2005中的Windows窗体,我想要一些带图像的按钮(我说的是普通的,香草的System.Windows.Forms.Button).我按照我想要的方式设置了所有内容,但是按钮上的图像显示得太低,因此图标的底部几乎位于按钮底部,图像上方有很多空间.
这是一个截图:
按钮截图http://www.freeimagehosting.net/uploads/b28a5c63b8.jpg
看看图标的角落是如何刷到按钮底部的?
我的按钮高23像素,图像是16 x 16图标(转换为位图,以便可以将其分配给按钮的Image属性).
我已经尝试将按钮的Margin.All属性设置为0,并验证Padding.All属性为0.我也尝试将按钮的ImageAlign更改为TopLeft,MiddleLeft和BottomLeft,但这些设置似乎都没有任何影响.
有谁知道我如何将图像定位到距按钮顶部和底部边缘相等的距离?我可以根据需要调整按钮或图像的大小,但它们是我喜欢的尺寸,如果可能的话我希望保持这种状态.