Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# File.ReadAllText易受SQL注入攻击_C#_Sql Injection - Fatal编程技术网

C# File.ReadAllText易受SQL注入攻击

C# File.ReadAllText易受SQL注入攻击,c#,sql-injection,C#,Sql Injection,我试图从我的C web应用程序项目中解决SQL注入依赖关系。我通过从项目的内部SQL文件部分读取SQL查询来对数据库执行SQL查询。我正在使用File.ReadAllText函数从文件中读取SQL查询 File.ReadAllText易受SQL注入攻击吗?如果是,在这种情况下如何避免SQL注入漏洞 File.ReadAllText(sqlScriptFilePath) 好的,假设您选择了all.txt。在SelectAll.txt中,包含一行:SELECT*FROM Users;,您的C程

我试图从我的C web应用程序项目中解决SQL注入依赖关系。我通过从项目的内部SQL文件部分读取SQL查询来对数据库执行SQL查询。我正在使用File.ReadAllText函数从文件中读取SQL查询

File.ReadAllText易受SQL注入攻击吗?如果是,在这种情况下如何避免SQL注入漏洞

File.ReadAllText(sqlScriptFilePath)  
好的,假设您选择了all.txt。在SelectAll.txt中,包含一行:SELECT*FROM Users;,您的C程序基本上加载这个.txt文件并执行这个select语句,然后没有。。。它绝对不会受到SQL注入的攻击

ReadAllText,基本上是将文件中的任何内容读取到一个变量左右。此变量存储在系统的内存RAM中。除非攻击者能够访问您的内存并编辑变量值,否则您将非常安全:


最后,这里有一个指南,您会发现它非常有用,就像我自己一样:

一个不运行SQL的函数如何容易受到SQL注入的攻击?您对查询读取的结果所做的是一个完全不同的问题SQL注入归结为通过字符串操作混合代码和数据,因此代码/数据的区别可能会丢失。因为文件API本身不做这些事情,所以它本身不易受攻击,但是您如何使用从中读取的字符串以及这些字符串的来源可能会导致注入漏洞。那么您就没事了。@Jeroenmoster是的,我同意:另一个有用的方法是使用SQLParameters@MarcGravell:…那么我修改我对你的评论,你的DBA可能会更高兴。如果您阅读我的评论,认为存储过程应该被普遍使用,那么,这绝对不是我的意思。我会坚持我的建议,考虑100%。但是sqlScriptFilePath建议将脚本文件名和路径作为参数传递。如果我向它传递一个url,并且ReadAllText正确地处理url,而它可能不会这样做,那么我可以在某个地方上传一个SQL脚本,例如pastebin,并执行该脚本。。。