Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

ASP.Net में SQL इंजेक्शन को रोकना

पैरामीटरयुक्त क्वेरी का उपयोग करने का प्रयास करें यहां एक लिंक है http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/

साथ ही, OpenQuery का उपयोग न करें... चयन को चलाने के लिए इसका उपयोग करें

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

आपके कुछ विकल्पों का वर्णन करने वाले अधिक लेख:

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

दूसरे SQL सर्वर से कनेक्ट करने के लिए T-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 का अनुसरण करता है। यदि आप ओडीबीसी के माध्यम से लिंक किए गए सर्वर का उपयोग कर रहे हैं तो डेटाबेसनाम और स्कीमानाम को छोड़ दें, जैसा कि नीचे दिखाया गया है

    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. जांचें कि क्या कोई अस्थायी तालिका मौजूद है और अस्थायी तालिका बनाने से पहले उसे हटा दें

  2. स्पॉटलाइट क्लाउड बेसिक:बेस्ट फ्री डेटाबेस परफॉर्मेंस मॉनिटरिंग टूल

  3. DATEFIRST सेट करें - SQL सर्वर में सप्ताह का पहला दिन सेट करें

  4. SQL सर्वर प्रबंधन स्टूडियो में तालिका में मानों को त्वरित रूप से कैसे संपादित करें?

  5. मैं EntityFramework 7 और Asp.Net 5 का उपयोग करके SQL संग्रहीत कार्यविधि को कैसे कॉल कर सकता हूँ?