Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Предотвратяване на SQL инжектиране в ASP.Net

Опитайте да използвате параметризирана заявка, тук има връзка http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/

Също така, не използвайте OpenQuery... използвайте this, за да стартирате select

SELECT * FROM db...table WHERE ref = @ref AND bookno = @bookno

Още статии, описващи някои от вашите опции:

http://support.microsoft.com/kb/314520

Какъв е синтаксисът на T-SQL за свързване с друг SQL сървър?

Редактирано

Забележка:Вашият първоначален въпрос беше за разпределени заявки и свързани сървъри. Този нов израз не препраща към разпределена заявка. Мога само да предположа, че сега се свързвате директно с базата данни. Ето един пример, който трябва да работи. Ето още един референтен сайт за използване на SqlCommand.Parameters

SqlCommand cmd = new SqlCommand("Select * from Table where [email protected]", con); 
cmd.Parameters.Add("@ref", SqlDbType.Int);
cmd.Parameters["@ref"] = 34;

Редактирано:

Добре, Джейми Тейлър, ще се опитам отново да отговоря на въпроса ти.

Използвате OpenQuery, защото вероятно използвате свързана DB

Основно проблемът е, че методът OpenQuery приема низ, който не можете да предадете променлива като част от низа, който сте изпратили до OpenQuery.

Вместо това можете да форматирате заявката си по този начин. Нотацията следва servername.databasename.schemaname.tablename. Ако използвате свързан сървър чрез odbc, тогава пропуснете име на база данни и име на схема, както е показано по-долу

    Dim conn As SqlConnection = New SqlConnection("your SQL Connection String")
    Dim cmd As SqlCommand = conn.CreateCommand()
    cmd.CommandText = "Select * db...table where investor = @investor"
    Dim parameter As SqlParameter = cmd.CreateParameter()
    parameter.DbType = SqlDbType.Int
    parameter.ParameterName = "@investor"
    parameter.Direction = ParameterDirection.Input
    parameter.Value = 34


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да променя езика по подразбиране за SQL Server?

  2. SQL Server 2017:Импортиране на CSV данни от Linux към Salesforce с SSIS

  3. Ограничете връзка със SQL Server до конкретен IP адрес

  4. Изтриване на дублиращи се редове в SQL Server

  5. Как да ИЗБЕРЕТЕ *, но без имената на колони трябва да са уникални във всеки изглед