- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Possible Duplicate:
Can I protect against SQL Injection by escaping single-quote and surrounding user input with single-quotes?
String badInput = rawInput.replace("'","''");
ResultSet rs = statement.executeQuery("SELECT * FROM records WHERE col1 = '"+badInput+"'";
有什么方法可以对这段代码进行类似“Bobby Tables”的攻击吗?
最佳答案
根据所有必须解释命令的过程中的不同步骤,可能有一些可能性传递 %27
(例如)并让它充当单引号,不被注意地传递通过你的替换。
但是即使可以涵盖所有这些情况,并且对于这一个问题实际上是安全的,它的不足之处在于它不能统一执行。其他人可能会出现并想要添加 AND int1 = var1
,并注意到您已经考虑过 SQL 注入(inject),因此他们只是按照您的确切方式修改代码
String badInput = rawInput.replace("'","''");
String badInteger = rawInteger.replace("'","''");
ResultSet rs = statement.executeQuery("SELECT * FROM records WHERE" +
"int1 = " + badInteger + " OR col1 = '"+badInput+"'");
...只有整数,它不再是你想要保护自己的引号!在这里,很明显任何事情都可能出错。因此,虽然这是一个需要有人实现得不好的问题,但我认为这是设计中最大的问题——它只涵盖了一小部分情况。
最好只说“以下是一个变量。无论它包含什么,都将其视为一个值,并且不要尝试将其部分用作代码并执行该代码。”
p>关于java - 错误代码 : Why is this dangerous?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3265391/
假设有两个对象都继承自 thread 父类“utility thread that uses pthreads”。 class Othread1: public thread { public:
MavenCentral 包含很多 Artifact 。其中一些不应该使用,因为它们有严重的错误,例如威胁安全。 我知道 Nexus Firewall 提供了一项昂贵的服务来分析这些 Artifact
我的 IDE (JetBrains IntelliJ IDEA) 警告我要对方法参数进行同步,即使它始终是对象也是如此。 完整警告内容如下: Synchronization on method par
我读过一篇关于 C++ 中“命名循环习语”的文章:http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Named_Loop 这个成语让我们可以这样写: n
这个问题在这里已经有了答案: 关闭12年前. Possible Duplicate: Can I protect against SQL Injection by escaping single-qu
假设我允许用户链接到他们喜欢的任何图像。该链接将被检查语法正确性、转义等,然后插入 中。标签。 是否存在任何已知的安全漏洞,例如由某人链接到“evil.example.com/evil.jpg”,并
有时我的应用程序中会遇到格式错误的异常。异常情况接二连三地出现,如下: Caused by: java.lang.reflect.InvocationTargetException at sun.re
所以已经开始记录我的 F# 之旅,起初它们看起来相当危险。起初这似乎很聪明: type Card = { Name : string; Phone : string;
在编写调试语句时,我总是添加// DANGER注释,我知道在构建下一版Android应用程序之前必须将其删除。 因此,在构建每个发行版之前,我手动执行CTRL + Shift + F搜索"DANGER
为了查看用户在我的网站上链接到的另一个网站的实时预览,我使用了 iframe。 但是,这可能不是最好的解决方案,因为网站直接加载到我的网站中,每个 JavaScript 元素等都在链接页面上。 我的问
我有一个 Web API 项目。我的端点之一允许进行字符串搜索,其中可能包含特殊字符。 [RoutePrefix("api/Search")] [ValidateInput(false)] // th
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: A potentially dangerous Request.Form value was detected fr
在学校的计算机实验室中,我们使用 fputs 编写了一个程序,编译器返回了一个错误 gets is a dangerous function to use 和一个类似的错误 fputs 但是在家里,当
我正在检查一个计算器示例,在该示例中使用了 eval() 这通常是危险的,但这里是该示例的一部分; if button == "=": #Check carefully how we usin
在“Spark:权威指南”一书中(目前处于早期版本,文本可能会更改),作者建议不要将 Pyspark 用于 Spark 中的用户定义函数: “启动这个 Python 进程是昂贵的,但真正的成本是将数据
我正在开发一个将预安装(作为系统应用程序)在固件上的应用程序。 到目前为止关于 system apps 之间关系的文档,新权限模型,and the protection levels - 我不明白系统
考虑这个最小的例子(我能想到的): struct Bar; struct Foo { Bar* const b; Foo(Bar* b) : b(b) {} }; struct Bar {
我的 MVC .NET Core 项目中的一个页面上有一个下拉列表,我想为其自定义默认验证文本。 --Select Product -- 给出的标准验证错误消息是“需要产品 ID 字段”
这是我第一次使用 SafeHandle。 我需要调用这个需要 UIntPtr 的 P/Invoke 方法。 [DllImport("advapi32.dll", CharSet = CharS
我在 C# 项目中使用 Kendo MVC。 我正在尝试将 k-danger 类添加到剑道按钮。我不知道为什么,但它在 k-primary 类工作的地方不起作用。 这是我的按钮代码: // Thi
我是一名优秀的程序员,十分优秀!