相关疑难解决方法(0)

如何从"Bobby Tables"XKCD漫画中注入SQL?

只看:

XKCD Strip (来源:https://xkcd.com/327/)

这个SQL做了什么:

Robert'); DROP TABLE STUDENTS; --
Run Code Online (Sandbox Code Playgroud)

我知道这两个'并且--是用于评论,但是这个词也没有DROP被评论,因为它是同一行的一部分?

security validation sql-injection

1070
推荐指数
13
解决办法
19万
查看次数

带有单引号的字符串字段在表中插入记录时会导致错误

我有下面的代码:

query = "insert into tblB2B_OrderStatusTopStillInRB (LSRNbr, ShipName, Units, DroppedInRB, EPT, Status, OnTimeStatus, ShipVia, DroppedInRB_Order, RealEPT) ";
query += "values ('"
                    + ListOrdStatusTopInRB[i].LSRNbr + "','"
                    + ListOrdStatusTopInRB[i].ShipName + "',"
                    + ListOrdStatusTopInRB[i].Units + ",'"
                    + ListOrdStatusTopInRB[i].DroppedInRB + "','"
                    + ListOrdStatusTopInRB[i].EPT + "','"
                    + ListOrdStatusTopInRB[i].Status + "','"
                    + ListOrdStatusTopInRB[i].OnTimeStatus + "','"
                    + ListOrdStatusTopInRB[i].ShipVia + "','"
                    + ListOrdStatusTopInRB[i].DroppedInRB_Order + "','"
                    + ListOrdStatusTopInRB[i].RealEPT + "')";

cmd.CommandText = query;
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

我刚刚意识到,当ShipName一个带有单引号的值时,会在insert语句中导致错误,例如:int'l Transp.

有没有办法解决这个问题,而不从字符串中删除单引号?

我尝试使用以下但没有工作:

cmd.CommandText = @query
+ @ListOrdStatusTopInRB[i].ShipName + "',"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# sql

0
推荐指数
1
解决办法
1074
查看次数

标签 统计

c# ×1

security ×1

sql ×1

sql-injection ×1

validation ×1