我们有一个。NET 4.0项目,正在被Veracode扫描,以便获得安全认证。
报告详细文件&行号似乎是指Dapper:
ourowndll.dll dev/.../dapper net40/sqlmapper.cs 1138
app_browsers.dll dev/.../sqlmapperasync.cs 126
我想知道是否有任何方法可以防止这种漏洞。
我不熟悉VeraCode,然而正如@Kristen Waite Jukowski指出的那样,您的问题可能是由于您的一些查询没有参数化,在这种情况下,它们被正确地识别为容易受到SQL注入的攻击。
或者,一个类似的问题(与相同的问题有关,但与OrmLite)可能会对此有所了解。与OrmLite类似,由于dapper提供了编写原始SQL查询的工具,这些查询可以由未参数化的输入组成(例如,通过字符串连接),因此使用它可能被认为是一个漏洞,即使特定项目中的每个查询目前都是完全参数化的。这个问题的答案(在您的情况下可能不可行)是用实体框架取代现有的ORM:
在使用VeraCode读取代码期间,建议的正确补救措施是用EntityFramework 6.1替换ServiceStack ORM。
从该问题中的评论来看:
不同之处在于EF中,执行上下文实现IDbCommand,但CreateDataAdapter和其他允许动态sql抛出异常的API已经实现。EF中没有允许动态sql的代码路径,而不首先通过类似于OWASP的过滤机制。
问题内容: 我想在Winforms中编写一个小型应用程序,在其中我可以写一些单词,然后使用ADO.net将它们写到SQL数据库中。 当我想用一个占位符写一个字符串时遇到麻烦: 我的数据库中记录的是: 我该如何克服通过传输到我的数据库的C#更改字符串? 这是我的代码的一部分: 问题答案: 您使用参数化的sql。
问题内容: 我必须编写一个.sh来启动Jacoco覆盖的UI应用程序。退出时,必须生成一份jacoco报告。 我无法使用以下简单命令生成jacoco.exec: 命令的第一部分可以正常运行并启动程序,但是-javaagent选项不会生成报告,并且程序也不会启动。如果我发生语法错误,那是完全相同的行为。 我的命令出了什么问题? 其次,此命令创建一个.exec文件。如何在命令行中生成.html报告?
我必须写一个. sh来启动一个覆盖了Jacoco的UI应用程序。退出时,必须生成一个jacoco报告。 我无法用这个简单的命令生成jacoco.exec: 命令的第一部分工作正常并启动程序,但是-javaagent选项不生成报告,程序也不启动。如果我犯了语法错误,这是完全相同的行为。 我的命令怎么了? 其次,此命令创建一个. exec文件。如何在命令行中生成. html报告?
如何使用cli命令而不是手动使用将当前运行的项目更改为GCP(Google Cloud Platform)帐户中的另一个项目。
问题内容: 我需要在 不使用join命令的情况下加入 列表中的元素,因此例如,如果我有列表: 输出应为: 到目前为止,这是我的代码: 但是,最后,答案最终是错误的。 我认为逻辑还可以,但是我找不到问题? 问题答案: 如果您只想打印数字而不是实际数字: