Ton*_*ony 2 entity-framework sql-injection
我使用EF 4执行字符串查询:
string query = "SELECT * FROM Table WHERE ....";
[+ build WHERE clausule based on the user's input values]
db.ExecuteStoreQuery<TAble>(query).ToList();
Run Code Online (Sandbox Code Playgroud)
我想知道如何在taht WHERE clausule中阻止来自SQL注入的查询.有任何想法吗 ?
您需要使用参数化查询:
// Build where clause
var filters = new StringBuilder();
var parameters = new List<object>();
if (!string.IsNullOrEmpty(name))
{
if (filters.Length > 0)
filters.Append(" AND ");
filters.Append("name = @name");
var param = new SqlParameter("@name", SqlDbType.NVarChar);
param.Value = name;
parameters.Add(param);
}
...
// Build query
string query = "SELECT * FROM Table";
if (filters.Length > 0)
query = query + " WHERE " + filters;
// Execute
db.ExecuteStoreQuery<TAble>(query, parameters.ToArray()).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1775 次 |
| 最近记录: |