Sql инъекциясын сақталған рәсімдермен болдырмау

Толық мәтінді іздеу бумасы үшін жүйенің сақталған процедурасын шақырамын. Ол толық мәтінді іздеу үшін пайдаланылатын терминдерді SQL әдебиетін негізге ала отырып жасайды.

ex: exec ctx_query.explain ('index_name', 'толық мәтінді сүзгісі', 'түсіндірме кестесі') және т.б.

Мен өзімнің кодымда келесі әрекеттерді орындаймын:

using(OracleCommand command = new OracleCommand("ctx_query.explain", DataAccess.GetConnString()))
{   
    comm.Parameters.AddWithValue("index_name", "explain1");
    //comm.Parameters.AddWithValue("text_query", "(test) OR (term1 ACCUM term2");
    comm.Parameters.AddWithValue("text_query", txtUserInput.Text);
    comm.Parameters.AddWithValue("explain_table", "explain_results");
    comm.Parameters.AddWithValue("sharelevel", 0);
    comm.Parameters.AddWithValue("explain_id", new Guid().ToString().Substring(0,30));
    comm.ExecuteNonQuery();    
}

«Text_query» параметрі пайдаланушы кірісінен жасалады. Жоғарыда айтылғандай, textUserInput.Text пәрмен параметрі ретінде берілетіндіктен, sql инъекциясына жол бермей ме?

2

1 жауаптар

ctx_query.explain does not execute the query, it only examines it, so there is no SQL injection risk here.

0
қосылды
Ия және ctx_query.explain тексеріп, туралы хабарлауы тиіс. Ол орындалады .
қосылды автор Tony Andrews, көзі
Бірақ біреу кіре алмайды ')); кестеден ЖОҚ пайдаланушы кірісі ретінде?
қосылды автор user730108, көзі