我有一個 ASP.net Web API,它在用戶購買我當前正在開發的 Xamarin 應用程式中的產品后插入資料。但是,也可以通過簡單地從臺式計算機呼叫 Web 瀏覽器上的 URL 來插入資料,例如:
http://www.mywebapi.com/myfunc?username=bob&prod_enabled=true
我只希望在我的應用程式中購買產品后插入資料。在 Web API 的 C# 代碼中,我有:
public IActionResult myfunc(string username, string prod_enabled)
{
// Assume credentials to connect to database are validated
using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
{
SqlCommand cmd = new SqlCommand(
"INSERT INTO users (username, product_enabled) "
"VALUES('" username "', '" prod_enabled "')", connection);
try
{
connection.Open();
int i = cmd.ExecuteNonQuery();
connection.Close();
if (i == 1)
return Content("True");
return Content("False");
}
catch (FormatException)
{
connection.Close();
return Content("False");
}
}
}
我的猜測是包含第三個引數來驗證來自 Xamarin 應用程式的某種令牌,對嗎?我真的想確保人們不會使用 API 來偽造產品購買。需要有一些驗證手段。
謝謝!
uj5u.com熱心網友回復:
你有API嗎?在控制器的方法中添加屬性 [Authorize]。或者添加用戶的引數(他購買或不購買您的應用程式)。驗證用戶在資料庫中使用插入資料后
uj5u.com熱心網友回復:
出于某種原因不要使用這種方式。
- 這不是正確的 API 格式。請參閱此處
- 使用引數化查詢、ORM 或存盤程序防止 sql 注入在此處輸入鏈接描述
- 創建存盤庫層,然后在此處呼叫您的命令或查詢表單
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/401447.html
標籤:C# sql 网站 安全 xamarin.forms
