【发布时间】:2012-03-20 14:09:56
【问题描述】:
我有一些代码,它在使用 Business Connector 时使用 Axapta 对象上的 ExecuteStmt 方法,如下所示:
AxaptaRecord record = (AxaptaRecord)ax.CreateAxaptaRecord("SalesTable");
record.ExecuteStmt("select * from %1 where %1.SalesId == '" + id + "'");
while (record.Found)
{
// do stuff
}
这很好用,但它将在面向公众的网站上,所以这是访问数据的好方法吗?它是否安全免受 SQL 注入?因为我读过这个语句将使用“forcePlaceholders”关键字,因为它不包含连接,所以它将参数化查询?
【问题讨论】:
-
id来自哪里?是否有任何我可以将其更改为'; DROP TABLE Students; --的可能性?