Tôi sử dụng API dự kiến một chuỗi SQL. Tôi lấy đầu vào của người dùng, thoát nó và chuyển nó vào API. Đầu vào của người dùng khá đơn giản. Nó yêu cầu các giá trị cột. Cũng giống như vậy:Cách thoát khỏi các truy vấn SQL đơn giản trong C# cho SqlServer
string name = userInput.Value;
Sau đó, tôi xây dựng một truy vấn SQL:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
name.replace("'", "''"));
Đây có phải là đủ an toàn? Nếu không, có chức năng thư viện đơn giản làm cho các giá trị cột an toàn:
string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
SqlSafeColumnValue(name));
API sử dụng SQLServer làm cơ sở dữ liệu.
Bạn ** cần ** để sử dụng thông số. – SLaks
@SLaks, Hiển nhiên API không cho phép. Có lẽ anh ta cần một API mới. –
@sri bạn sẽ nhận được câu trả lời tốt hơn nếu bạn giải thích lý do tại sao bạn không thể/sẽ không sử dụng thông số. – Foole